我正在通过launch4j-maven插件在exe中构建2个java软件。两个pom.xml中的插件部分是相同的(应用程序名称除外)。
奇怪的是,当我启动第一个 exe 时,lauch4j 做得对:我可以看到 myapps.exe 正在运行,并且在日志中我看到了副本:
Using 64-bit runtime.
Check launcher: C:\Program Files\Java\jre7\bin\javaw.exe (OK)
Copy: C:\Program Files\Java\jre7\bin\javaw.exe -> C:\Program Files\Java\jre7\launch4j-tmp\NumSyncManager.exe
Heap -Xms: 5 MB / 0%, Free: 892 MB, Heap size: 5 MB
Heap -Xmx: 15 MB / 0%, Free: 892 MB, Heap size: 15 MB
...
Launcher: C:\Program Files\Java\jre7\launch4j-tmp\NumSyncManager.exe
Launcher args: -Xms5m -Xmx15m -classpath "C:\Program iles\..."
Args length: 474/32768 chars
Exit code: 0
但是当我启动第二个时,我看到 javaw.exe 而不是 myapps2.exe 并且在日志中我清楚地看到它没有复制启动器:
Using 64-bit runtime.
Check launcher: C:\Program Files\Java\jre7\bin\javaw.exe (OK)
Heap -Xms: 10 MB / 0%, Free: 951 MB, Heap size: 10 MB
Heap -Xmx: 500 MB / 0%, Free: 951 MB, Heap size: 500 MB
...
Launcher: C:\Program Files\Java\jre7\bin\javaw.exe
Launcher args: -Xms10m -Xmx500m -classpath "C:\Program..."
Args length: 817/32768 chars
Exit code: 0
这里是工作应用程序的 xml 文件:
<configuration>
<headerType>gui</headerType>
<outfile>target/${winName}.exe</outfile>
<jar>target/${artifactId}-${version}-jar-with-dependencies.jar</jar> <!-- 'shaded' is the value set on shadedClassifierName above -->
<errTitle>Erreur lors du lancement du logiciel</errTitle>
<classPath>
<mainClass>fr.core.BootStrap</mainClass>
</classPath>
<singleInstance>
<mutexName>${winName}</mutexName>
<windowTitle>${winName}</windowTitle>
</singleInstance>
<jre>
<minVersion>1.6.0</minVersion>
<initialHeapSize>50</initialHeapSize>
<maxHeapSize>100</maxHeapSize>
</jre>
<versionInfo>
<fileVersion>${version}.0</fileVersion>
<txtFileVersion>${version}.0</txtFileVersion>
<fileDescription>Tool Manager</fileDescription>
<copyright>C</copyright>
<productVersion>${version}.0</productVersion>
<txtProductVersion>${version}.0</txtProductVersion>
<productName>${winName}</productName>
<internalName>${winName}</internalName>
<originalFilename>${winName}.exe</originalFilename>
</versionInfo>
</configuration>
这是非工作应用程序的 xml
<headerType>gui</headerType>
<outfile>target/${winName}.exe</outfile>
<jar>target/${artifactId}-${version}-jar-with-dependencies.jar</jar> <!-- 'shaded' is the value set on shadedClassifierName above -->
<errTitle>Erreur lors du lancement du logiciel</errTitle>
<classPath>
<mainClass>fr.boot.BootStrap</mainClass>
</classPath>
<singleInstance>
<mutexName>${winName}</mutexName>
<windowTitle>${winName}</windowTitle>
</singleInstance>
<dontWrapJar>false</dontWrapJar>
<customProcName>false</customProcName>
<jre>
<minVersion>1.6.0</minVersion>
<initialHeapSize>10</initialHeapSize>
<maxHeapSize>500</maxHeapSize>
</jre>
<versionInfo>
<fileVersion>${winVersion}.0</fileVersion>
<txtFileVersion>${winVersion}.0</txtFileVersion>
<fileDescription>Tool</fileDescription>
<copyright>c</copyright>
<productVersion>${winVersion}.0</productVersion>
<txtProductVersion>${winVersion}.0</txtProductVersion>
<productName>${winName}</productName>
<internalName>${winName}</internalName>
<originalFilename>${winName}.exe</originalFilename>
</versionInfo>
</configuration>
我使用相同的 Windows 帐户启动它们,没有权限问题。所以我不知道如何解决这个问题。
我尝试使用 Launch4j.exe 而不是 maven 插件,这是我的配置导出。它仍然不起作用:
<launch4jConfig>
<dontWrapJar>false</dontWrapJar>
<headerType>gui</headerType>
<jar>C:\apps-0.0.1-jar-with-dependencies.jar</jar>
<outfile>C:\apps.exe</outfile>
<errTitle></errTitle>
<cmdLine></cmdLine>
<chdir></chdir>
<priority>normal</priority>
<downloadUrl>http://java.com/download</downloadUrl>
<supportUrl></supportUrl>
<customProcName>false</customProcName>
<stayAlive>false</stayAlive>
<manifest></manifest>
<icon></icon>
<singleInstance>
<mutexName>apps</mutexName>
<windowTitle>apps</windowTitle>
</singleInstance>
<classPath>
<mainClass>fr.core.BootStrap</mainClass>
<cp>fr.core.BootStrap</cp>
</classPath>
<jre>
<path></path>
<minVersion>1.6.0</minVersion>
<maxVersion></maxVersion>
<jdkPreference>preferJre</jdkPreference>
<opt>-Denv.java.home="%JAVA_HOME%"</opt>
</jre>
<versionInfo>
<fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>1.0.0.0</txtFileVersion>
<fileDescription>desc</fileDescription>
<copyright>e</copyright>
<productVersion>1.0.0.0</productVersion>
<txtProductVersion>1.0.0.0</txtProductVersion>
<productName>apps.exe</productName>
<companyName>appsComp</companyName>
<internalName>apps</internalName>
<originalFilename>apps.exe</originalFilename>
</versionInfo>
</launch4jConfig>
谢谢