无法访问appdata中的jarfile

时间:2016-06-27 17:49:36

标签: java windows launch4j

我正在编写一个Java程序,并有一个launch4j启动程序。我的JAR存储在用户%APPDATA%文件夹下,但是当我尝试在launch4j中使用它时,我收到此错误:

enter image description here

这是我的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>

2 个答案:

答案 0 :(得分:1)

我能够通过省略<jar>代码并添加包含<opt>

-jar "%APPDATA%\Derby Pro\derby-pro.jar"代码来使其正常工作

答案 1 :(得分:0)

问题是jar路径位置是相对于执行路径的。 %APPDATA%被视为不是变量而是整个路径的一部分。如果jar文件与启动器位于同一位置,则只需指定文件名即可。