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

Installation 带Inno Setup 5的JavaFX自助安装程序-允许用户更改安装目录,installation,inno-setup,javafx-8,Installation,Inno Setup,Javafx 8,我正在使用Ant为JavaFX应用程序构建一个自部署EXE 当前Inno安装程序将EXE放在此处:C:\Users\username\AppData\Local\application name 我想把它放在一个不同的位置,并为用户提供覆盖它的选项。然而,我似乎找不到ant设置来改变这一点 这可能吗 谢谢 实际上,你不能用ANT来改变这一点。但是,正如您已经知道的,部署机制使用Inno设置,您可以修改其行为 在fx:deployANT任务期间,将创建默认的ApplicationName.iss文

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

当前Inno安装程序将EXE放在此处:C:\Users\username\AppData\Local\application name

我想把它放在一个不同的位置,并为用户提供覆盖它的选项。然而,我似乎找不到ant设置来改变这一点

这可能吗


谢谢

实际上,你不能用ANT来改变这一点。但是,正如您已经知道的,部署机制使用Inno设置,您可以修改其行为

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

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

    <fx:info title="${appname}" vendor="${vendor}"/>
    ...
</fx:deploy>
并且必须把定制的文件放到

package/windows/ApplicationName.iss
相对于ANT构建脚本

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


此外,还可以找到参数
DefaultDirName
。如果您想将应用程序安装到默认的
C:\Program File\ApplicationName
,您可以使用常量
{pf}
,例如:
DefaultDirName={pf}\ApplicationName

原来的答案不再正确,因为该功能被添加到JDK中(只是不知道什么时候添加的,但在使用1.8.0u60左右时就已经添加了)

只需将
添加为一些
,并将其设置为
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>

com.zenjava

谢谢-这太完美了。。。很容易理解。:)不过有一个问题。我使用了{pf}/ApplicationName-但是当它提示确认安装位置时,它仍然将它放在C:\Users\username\AppData\Local\application name中。这是默认设置的结果:UsePreviousAppDir。我需要先卸载,然后它使用我的新位置。谢谢我已经迁移到maven版本,但未能成功获得要使用的自定义ISS文件。我已经把它放在src/main/deploy/package/windows/appname.iss中,但它不会把它捡起来。你在这方面运气好吗?不幸的是,我对这个案子没有任何经验。我添加了一个不起作用的true。输出的本机安装程序exe仍然不会询问要安装的目录。@MaxiWu是否已检查您的JDK是否为yum或up2date?旧版本不包含此功能我查找我的项目->属性->java构建路径。它是JavaSE-1.8jre1.8.0131。还有另一个选项JavaSE-1.7jdk1.8.0_40。我将安装最新的jdk并重试。谢谢。你说得对,更新到8u114后,它就可以工作了。非常感谢。
<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>