Launch4j不会复制启动器

时间:2012-08-03 16:12:45

标签: java windows wrapper

我正在使用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=&quot;%JAVA_HOME%&quot;</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>

由于

2 个答案:

答案 0 :(得分:0)

无法评论maven部分,但我已成功使用Launch4j与Ant。查看构建可执行文件时传递给launch4j的XML文件。很可能第二个指定dontWrapJar = true。

在Launch4j GUI中交替加载XML,并选中“不包装JAR”复选框选中。

答案 1 :(得分:0)

要在launch4J配置文件中使用自定义进程名称启动应用程序,必须编写

<customProcName>true</customProcName>

在您的非工作应用配置中,此参数为false。 尝试先改变它。