我正在编写一个Java程序,并有一个launch4j启动程序。我的JAR存储在用户%APPDATA%
文件夹下,但是当我尝试在launch4j中使用它时,我收到此错误:
这是我的launch4j.xml
文件(这是由Gradle插件自动生成的):
<?xml version='1.0' encoding='UTF-8'?>
<launch4jConfig>
<dontWrapJar>true</dontWrapJar>
<headerType>gui</headerType>
<jar>%APPDATA%\Derby Pro\derby-pro.jar</jar>
<outfile>DerbyPro.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>../../src/main/resources/com/neonorb/derbypro/assets/derby-pro-icon-favicon.ico</icon>
<jre>
<path>%APPDATA%\Derby Pro\jre</path>
<bundledJre64Bit>false</bundledJre64Bit>
<bundledJreAsFallback>false</bundledJreAsFallback>
<minVersion>1.8.0</minVersion>
<maxVersion></maxVersion>
<jdkPreference>preferJre</jdkPreference>
<runtimeBits>64/32</runtimeBits>
</jre>
<versionInfo>
<fileVersion>0.0.0.0</fileVersion>
<txtFileVersion>0.0.0</txtFileVersion>
<fileDescription>derby-pro</fileDescription>
<copyright>unknown</copyright>
<productVersion>0.0.0.0</productVersion>
<txtProductVersion>0.0.0</txtProductVersion>
<productName>Derby Pro</productName>
<companyName>Neon Orb</companyName>
<internalName>derby-pro</internalName>
<originalFilename>DerbyPro.exe</originalFilename>
</versionInfo>
</launch4jConfig>
答案 0 :(得分:1)
我能够通过省略<jar>
代码并添加包含<opt>
-jar "%APPDATA%\Derby Pro\derby-pro.jar"
代码来使其正常工作
答案 1 :(得分:0)
问题是jar路径位置是相对于执行路径的。 %APPDATA%被视为不是变量而是整个路径的一部分。如果jar文件与启动器位于同一位置,则只需指定文件名即可。