使用 Inno Setup 5 的 JavaFX 自安装程序 - 允许用户更改安装目录
JavaFX Self Installer With Inno Setup 5 - Allow user to change install directory
我正在使用 Ant 为 JavaFX 应用程序构建自部署 EXE。
目前 Inno Setup 将 EXE 放在这里:C:\Users\username\AppData\Local\application name
我想将它放在不同的位置,并为用户提供覆盖它的选项。但是我似乎找不到 ant 设置来更改它。
这可能吗?
谢谢!
实际上您无法使用 ANT 更改此设置。但是,如您所知,部署机制使用 Inno Setup,您可以修改其行为。
在 fx:deploy
ANT 任务期间,会创建一个默认的 ApplicationName.iss
文件。此默认文件包含例如设置,负责安装目录。只有在您不提供任何自定义的情况下才会创建此默认文件。所以,我会推荐运行 ANT 脚本,复制默认文件并修改它。如果您启用 fx:deploy
任务的 verbose
标志,您可以使用控制台输出找出默认文件的创建位置以及 ANT 任务在创建默认文件之前搜索自定义文件的位置:
<fx:deploy
...
verbose="true">
<fx:info title="${appname}" vendor="${vendor}"/>
...
</fx:deploy>
就我而言,我在
中找到了默认文件
C:\Users\gfkri\AppData\Local\Temp\fxbundler3627681647438085792\windows
并且必须将自定义文件放入
package/windows/ApplicationName.iss
相对于 ANT 构建脚本。
如果到目前为止,您会在 ApplicationName.iss
文件中找到行 DisableDirPage=Yes
。将其更改为 DisableDirPage=No
并且用户可以更改安装目录。
进一步你会发现参数DefaultDirName
。如果您想默认将应用程序安装到 C:\Program File\ApplicationName
,您可以使用常量 {pf}
,例如:DefaultDirName={pf}\ApplicationName
。
最初的答案不再正确,因为该功能已添加到 JDK(只是不知道什么时候,但在使用 1.8.0u60 左右时它就存在)。
只需将 <installdirChooser>
添加为一些 <bundleArguments>
并将其设置为 true
:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.4.0</version>
<configuration>
<mainClass>your.mainclass</mainClass>
<verbose>true</verbose>
<bundleArguments>
<identifier>SOME-GUID-USED-FOR-UPDATE-DETECTION</identifier>
<installdirChooser>true</installdirChooser>
</bundleArguments>
</configuration>
</plugin>
免责声明: 我是 javafx-maven-plugin
的维护者
我正在使用 Ant 为 JavaFX 应用程序构建自部署 EXE。
目前 Inno Setup 将 EXE 放在这里:C:\Users\username\AppData\Local\application name
我想将它放在不同的位置,并为用户提供覆盖它的选项。但是我似乎找不到 ant 设置来更改它。
这可能吗?
谢谢!
实际上您无法使用 ANT 更改此设置。但是,如您所知,部署机制使用 Inno Setup,您可以修改其行为。
在 fx:deploy
ANT 任务期间,会创建一个默认的 ApplicationName.iss
文件。此默认文件包含例如设置,负责安装目录。只有在您不提供任何自定义的情况下才会创建此默认文件。所以,我会推荐运行 ANT 脚本,复制默认文件并修改它。如果您启用 fx:deploy
任务的 verbose
标志,您可以使用控制台输出找出默认文件的创建位置以及 ANT 任务在创建默认文件之前搜索自定义文件的位置:
<fx:deploy
...
verbose="true">
<fx:info title="${appname}" vendor="${vendor}"/>
...
</fx:deploy>
就我而言,我在
中找到了默认文件C:\Users\gfkri\AppData\Local\Temp\fxbundler3627681647438085792\windows
并且必须将自定义文件放入
package/windows/ApplicationName.iss
相对于 ANT 构建脚本。
如果到目前为止,您会在 ApplicationName.iss
文件中找到行 DisableDirPage=Yes
。将其更改为 DisableDirPage=No
并且用户可以更改安装目录。
进一步你会发现参数DefaultDirName
。如果您想默认将应用程序安装到 C:\Program File\ApplicationName
,您可以使用常量 {pf}
,例如:DefaultDirName={pf}\ApplicationName
。
最初的答案不再正确,因为该功能已添加到 JDK(只是不知道什么时候,但在使用 1.8.0u60 左右时它就存在)。
只需将 <installdirChooser>
添加为一些 <bundleArguments>
并将其设置为 true
:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.4.0</version>
<configuration>
<mainClass>your.mainclass</mainClass>
<verbose>true</verbose>
<bundleArguments>
<identifier>SOME-GUID-USED-FOR-UPDATE-DETECTION</identifier>
<installdirChooser>true</installdirChooser>
</bundleArguments>
</configuration>
</plugin>
免责声明: 我是 javafx-maven-plugin
的维护者