如何获取 Launch4j XML 配置以正确捆绑 JRE?
How to get Launch4j XML Config to Bundle JRE Properly?
我有一个程序,我真的很想使用专用的 JRE 而不是要求我的客户下载 Java。我使用 Launch4j 作为我的构建工具,并且一直在尝试使用捆绑的 JRE 功能。我已将 JRE 复制到我的程序目录中,并设置如下:
//home/user/Program Name:
/cfg (contains Launch 4j xml build file)
/bin (contains signature key, exe, and Jar file)
/Runtime (contains working copy of JRE)
我曾尝试修改 xml 以直接指向 JRE 中的 Javaw.exe,但这并没有什么不同。我还尝试将以下行添加到每个其他 SO 论坛的 xml,但老实说,我不是 100% 确定它的作用:
<opt>-DgvSIG.confDir=../cfg</opt>
我的问题是我需要对 xml 配置进行哪些修改,以便任何远程用户无需第一次下载 Java 即可打开我的程序。我在 Windows,让这个只为 windows 工作现在很好。这是我的 xml:
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>console</headerType>
<jar>C:\Users\zrr81\Climate Dev Pegasus\bin\ClimateDevPegasus_Alpha.jar</jar>
<outfile>C:\Users\zrr81\Climate Dev Pegasus\bin\ClimateDevPegasus_Alpha.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir>.</chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<stayAlive>false</stayAlive>
<restartOnCrash>false</restartOnCrash>
<manifest></manifest>
<icon>C:\Users\zrr81\Climate Dev Pegasus\Pegasus.ico</icon>
<jre>
<path>Climate Dev Pegasus\Runtime\jdk-13.0.1\bin\javaw.exe</path>
<bundledJre64Bit>true</bundledJre64Bit>
<bundledJreAsFallback>false</bundledJreAsFallback>
<minVersion>1.5.0</minVersion>
<maxVersion>13.0.2</maxVersion>
<jdkPreference>preferJre</jdkPreference>
<runtimeBits>64/32</runtimeBits>
</jre>
</launch4jConfig>
事实证明,这很容易修复,但很难找到合适的信息。 Launch 4J 中有一个设置可让您强制执行本地 JDK 并防止程序尝试强制执行全新安装:
当您按下该设置时,它将允许您使用捆绑的 JRE 并在 XML 中生成以下行:
<jdkPreference>jdkOnly</jdkPreference>
我有一个程序,我真的很想使用专用的 JRE 而不是要求我的客户下载 Java。我使用 Launch4j 作为我的构建工具,并且一直在尝试使用捆绑的 JRE 功能。我已将 JRE 复制到我的程序目录中,并设置如下:
//home/user/Program Name:
/cfg (contains Launch 4j xml build file)
/bin (contains signature key, exe, and Jar file)
/Runtime (contains working copy of JRE)
我曾尝试修改 xml 以直接指向 JRE 中的 Javaw.exe,但这并没有什么不同。我还尝试将以下行添加到每个其他 SO 论坛的 xml,但老实说,我不是 100% 确定它的作用:
<opt>-DgvSIG.confDir=../cfg</opt>
我的问题是我需要对 xml 配置进行哪些修改,以便任何远程用户无需第一次下载 Java 即可打开我的程序。我在 Windows,让这个只为 windows 工作现在很好。这是我的 xml:
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>console</headerType>
<jar>C:\Users\zrr81\Climate Dev Pegasus\bin\ClimateDevPegasus_Alpha.jar</jar>
<outfile>C:\Users\zrr81\Climate Dev Pegasus\bin\ClimateDevPegasus_Alpha.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir>.</chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<stayAlive>false</stayAlive>
<restartOnCrash>false</restartOnCrash>
<manifest></manifest>
<icon>C:\Users\zrr81\Climate Dev Pegasus\Pegasus.ico</icon>
<jre>
<path>Climate Dev Pegasus\Runtime\jdk-13.0.1\bin\javaw.exe</path>
<bundledJre64Bit>true</bundledJre64Bit>
<bundledJreAsFallback>false</bundledJreAsFallback>
<minVersion>1.5.0</minVersion>
<maxVersion>13.0.2</maxVersion>
<jdkPreference>preferJre</jdkPreference>
<runtimeBits>64/32</runtimeBits>
</jre>
</launch4jConfig>
事实证明,这很容易修复,但很难找到合适的信息。 Launch 4J 中有一个设置可让您强制执行本地 JDK 并防止程序尝试强制执行全新安装:
当您按下该设置时,它将允许您使用捆绑的 JRE 并在 XML 中生成以下行:
<jdkPreference>jdkOnly</jdkPreference>