【发布时间】:2015-06-05 00:57:26
【问题描述】:
我正在使用Java Packager Tool 解决“自包含应用程序”生成问题。默认情况下,“.exe”包安装在“C:\Program Files (x86)”下,但我想将其安装到自定义位置:例如“C:\MyApp”。
为了生成我的包,我在 Maven 构建中使用了 Ant 任务:
<target xmlns:fx="javafx:com.sun.javafx.tools.ant">
<property name="jre.dir" value="${env.JAVA_HOME}/jre" />
<property name="version" value="0.0.3" />
<taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
uri="javafx:com.sun.javafx.tools.ant" classpath="${env.JAVA_HOME}/lib/ant-javafx.jar" />
<echo message="// ----------------------------------- //" />
<echo message="// START JAVAPACKAGER ANT TASK //" />
<echo message="// ----------------------------------- //" />
<fx:deploy nativeBundles="exe" outdir="${basedir}/packager"
outfile="MyApp_${version}">
<fx:application name="MyApp" mainClass="com.myfirm.myapp.bootstrap.BootstrapMain">
<fx:argument>-bundlesDir=./bundles/</fx:argument>
</fx:application>
<fx:resources>
<fx:fileset dir="${project.basedir}/target"
includes="${project.name}-${project.version}-jar-with-dependencies.jar" />
<fx:fileset dir="${project.basedir}" includes="bundles/*.jar" />
</fx:resources>
<fx:info title="MyApp ${version}" vendor="MyFirm">
<fx:icon href="${project.basedir}/myapp.ico" kind="default" width="32" height="32" depth="8" />
</fx:info>
<fx:preferences install="true" shortcut="true" />
<fx:platform basedir="${jre.dir}"/>
</fx:deploy>
</target>
有人解决这个问题吗?并且可以告诉我更多关于如何更精确地配置生成的本机捆绑包的信息吗?
提前致谢。
编辑
在 Windows 下,我找到了一种方法:通过编辑 jar %JAVA_HOME%\lib\ant-javafx 中的文件 com\oracle\tools\packager\windows\template.iss。罐。但是这个解决方案似乎很丑陋而且不便携!所以我现在正在寻找一种在我的 ant 任务中覆盖它的方法......
【问题讨论】:
-
安装程序的安装目录取决于 Windows 的 INNO/WIX 设置。
-
@ItachiUchiha 是的,我知道 INNO/WIX,但它们都不允许指定自定义安装程序安装目录,我可以看到 here,表 7-2
-
你可能想通过WIX Documentation for custom path。如果你使用 Inno,它也有类似的功能。
-
@ItachiUchiha 好的,但是我在哪里可以从我的构建脚本中覆盖它??
-
您不能在构建文件中使用自定义打包程序时编写自己的脚本并执行它。
标签: java deployment ant javafx packaging