使用Inno Setup的JavaFX自安装程序5 - 允许用户更改安装目录

pur*_*eon 12 installer inno-setup javafx-8

我正在使用Ant为JavaFX应用程序构建自部署EXE.

目前Inno Setup将EXE置于此处:C:\ Users\username\AppData\Local\application name

我想将它放在不同的位置,并为用户提供覆盖它的选项.但是我似乎无法找到蚂蚁设置来改变它.

这可能吗?

谢谢!

gfk*_*kri 23

实际上你无法使用ANT改变这一点.但是,您已经知道部署机制使用Inno Setup,您可以修改其行为.

fx:deployANT任务期间,将ApplicationName.iss创建一个默认文件.此默认文件包含例如设置,该设置负责安装目录.如果您不自行提供任何自定义,则仅创建此默认文件.所以,我建议运行ANT脚本,复制默认文件并进行修改.如果启用任务verbose标志,则fx:deploy可以使用控制台输出查找,创建默认文件的位置以及ANT任务在创建默认文件之前搜索自定义文件的位置:

<fx:deploy
    ...
    verbose="true">

    <fx:info title="${appname}" vendor="${vendor}"/>
    ...
</fx:deploy>
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我找到了默认文件

C:\Users\gfkri\AppData\Local\Temp\fxbundler3627681647438085792\windows
Run Code Online (Sandbox Code Playgroud)

并且必须将自定义文件放入

package/windows/ApplicationName.iss
Run Code Online (Sandbox Code Playgroud)

相对于ANT构建脚本.

如果到目前为止,您将DisableDirPage=YesApplicationName.iss文件中找到该行.将其更改为DisableDirPage=No,用户可以更改安装目录.

您还可以找到参数DefaultDirName.如果要在C:\Program File\ApplicationName默认情况下安装应用程序,可以使用常量,{pf}例如:DefaultDirName={pf}\ApplicationName.


Fib*_*FoX 5

最初的答案不再适用,因为该功能已添加到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>
Run Code Online (Sandbox Code Playgroud)

免责声明:我是javafx-maven-plugin的维护者