将自定义 uri 方案与 Java 自包含应用程序相关联 windows

Associate custom uri schemes with Java self contained application for windows

我有一个独立的 JavaFX 应用程序。为了改善用户体验,我希望用户在浏览器上单击 button/link 并启动应用程序。就像 torrent 的磁力 URI 一样,link 包含启动应用程序所需的元数据。

有没有办法为 JavaFX 应用程序生成可执行文件以与自定义 URI 关联,就像与 torrent 应用程序关联的磁铁 URI 一样。

以下是将自定义 URI 与应用程序相关联的方法。

我已经有一个生成本机包的任务。

第一步是在您的 ant 任务中启用详细,以便您可以找到构建路径。 如前所述 here,在 6.3.3 中启用详细并在构建目录中查找 <AppName>.iss 文件,通常是 AppData/Local/Temp/fxbundler*.

确保在类路径中有包含包目录的目录。以下是如何将其添加到类路径的示例:

<taskdef resource="com/sun/javafx/tools/ant/antlib.xml" uri="javafx:com.sun.javafx.tools.ant" classpath="${build.src.dir}:${JAVA_HOME}/lib/ant-javafx.jar"/>

在我的示例中,我在 src 目录中有 package/windows 和 Drop-In Resources。

如果你有文件关联,你会看到这样的东西:

[Registry]
Root: HKCR; Subkey: ".txt"; ValueType: string; ValueName: ""; ValueData: "AppNameFile"; Flags: uninsdeletevalue

在此行之后,您可以添加行以添加自定义 URI 的注册表项。

如果您没有文件关联,那么您将在

之后添加条目
ArchitecturesInstallIn64BitMode=ARCHITECTURE_BIT_MODE

您可以在此位置找到有关如何生成 AppName.iss 文件的模板: C:\Program Files (x86)\Java\jdk1.8.0_60\lib\ant-javafx.jar\com\oracle\tools\packager\windows\template.iss

Here 你会发现 如何 像上面那样写行

Here 您可以找到 what 注册表项和自定义 URI 关联需要添加的条目。