簡體   English   中英

Launch4j 中的異常

[英]Exception in Launch4j

我的 build.xml 中有以下說明,但出現以下異常。

launch4j: net.sf.launch4j.ExecException: 執行失敗 (1): C:\Program Files\Launch4j\bin\windres.exe --preprocessor=type -J rc -O coff -F pe-i386 C: TEMP\launch4j2603642297702639520rc C:\Windows\TEMP\launch4j1179691608441365102o

這是我的構建腳本:

<project basedir="."  default="build" name="Bienvenue"> 
   <!-- Crée le fichier d'installation BienvenueSetup.exe --> 
  <target name="build"> 
  <!-- Création du dossier classes --> 
  <mkdir dir="classes"/> 

  <!-- Compilation des classes du programme --> 
  <javac srcdir="src" destdir="classes" /> 

  <!-- Création du dossier install/lib --> 
  <mkdir dir="install/lib"/> 

  <!-- Création du fichier Bienvenue.jar --> 
  <jar destfile="install/lib/Bienvenue.jar" basedir="classes"/> 

  <!-- Suppression du dossier classes --> 
  <delete dir="classes"/> 

  <!-- Copie du JRE dans le dossier install/jre6 en excluant les fichiers 
   inutiles mentionnés dans le fichier README.TXT du JRE 
   (attention il faut garder le fichier bin/javaw.exe du JRE) --> 
  <copy todir="install/jre6"> 
  <fileset dir="C:\Program Files\Java\jre6"> 
  <include name="*"/> 
  <include name="bin/**"/> 
  <include name="lib/**"/> 
  <exclude name="lib/charsets.jar"/> 
  <exclude name="lib/ext/sunjce_provider.jar"/> 
  <exclude name="bin/rmid.exe"/> 
  <exclude name="bin/rmiregistry.exe"/> 
  <exclude name="bin/tnameserv.exe"/> 
  <exclude name="bin/keytool.exe"/> 
  <exclude name="bin/kinit.exe"/> 
  <exclude name="bin/klist.exe"/> 
  <exclude name="bin/ktab.exe"/> 
  <exclude name="bin/policytool.exe"/> 
  <exclude name="bin/orbd.exe"/> 
  <exclude name="bin/servertool.exe"/> 
  <exclude name="bin/java.exe"/> 
  <exclude name="bin/javaws.exe"/> 
  <exclude name="bin/javacpl.exe"/> 
  <exclude name="bin/jucheck.exe"/> 
  <exclude name="bin/jusched.exe"/> 
  <exclude name="bin/wsdetect.dll"/> 
  <exclude name="bin/npjava*.dll"/> 
  <exclude name="bin/npoji610.dll"/> 
  <exclude name="bin/regutils.dll"/> 
  <exclude name="bin/axbridge.dll"/> 
  <exclude name="bin/deploy.dll"/> 
  <exclude name="bin/jpicom.dll"/> 
  <exclude name="bin/javacpl.cpl"/> 
  <exclude name="bin/jpiexp.dll"/> 
  <exclude name="bin/jpinscp.dll"/> 
  <exclude name="bin/jpioji.dll"/> 
  <exclude name="bin/jpishare.dll"/> 
  <exclude name="lib/deploy.jar"/> 
  <exclude name="lib/plugin.jar"/> 
  <exclude name="lib/deploy/messages*.properties"/> 
  <exclude name="lib/deploy/splash.jpg"/> 
  </fileset> 
  </copy > 

   <!-- Création du fichier Bienvenue.exe avec Launch4j --> 
  <exec executable="C:\Program Files\Launch4j\launch4jc.exe"> 
  <arg value="${basedir}\installerLaunch4j.xml"/> 
  </exec > 

   <!-- Création du fichier BienvenueSetup.exe avec Inno Setup --> 
  <exec executable="C:\Program Files\Inno Setup 5\ISCC.exe"> 
  <arg value="${basedir}\installerInnoSetup.iss"/> 
  </exec > 

   <!-- Suppression du dossier install --> 
  <delete dir="install/"/> 

     <echo message="BienvenueSetup.exe ready"/> 
  </target > 
  </project > 

誰能幫我弄清楚我做錯了什么?

請顯示您的installerLaunch4j.xml Launch4j.xml 配置。 我的案例問題是圖標格式錯誤(我使用的是png而不是ico )。

Launch4j 的文檔說要這樣做:

<property name="launch4j.dir" location="< your launch4j directory >" />

<taskdef name="launch4j"
    classname="net.sf.launch4j.ant.Launch4jTask"
    classpath="${launch4j.dir}/launch4j.jar:${launch4j.dir}/lib/xstream.jar" />

<launch4j configFile="./l4j/yourLaunch4jSpecFile.xml" />

我多年來一直使用這種方法,沒有遇到任何麻煩。 FWIW,我的路徑包括帶有空格的“程序文件”,這沒有造成任何問題。

當路徑中有空格時,我在運行此類工具時遇到了問題。 您可以嘗試從其中沒有空格的路徑運行所有內容嗎?

當我嘗試對 Launch4j 使用 Ant 任務時,我報告了同樣的異常。 雖然使用外部 XML 配置文件調用它可以完美運行,但使用<config>元素調用它不起作用。

我基於外部 Launch4j 配置文件在 Ant 構建 XML 中創建了整個配置,使用反復試驗來確定應該將什么指定為屬性以及什么作為 Z938DB156AD9B67FA1D4276AC6769 任務的元素層次結構。 在執行此操作時,我還指定了 XML 中的所有空字符串值,例如errTitle=""cmdLine=""屬性。 不要這樣做。 簡單地省略那些。

基於我的工作項目的示例:

<target name="launch4j-wrap" depends="init">
    <property name="launch4j.dir" location="C:/Program Files (x86)/Launch4j" />
    <property name="temp.install.dir.name" value="ExampleApp_installDir"/>
    <property name="temp.install.dir" value="${dist.dir}/${temp.install.dir.name}/bin" />
    <property name="prod.version" value="1.0.0.0"/>
    <property name="prod.copyright" value="2010-2015"/>

    <taskdef name="launch4j"
             classname="net.sf.launch4j.ant.Launch4jTask"
             classpath="${launch4j.dir}/launch4j.jar:${launch4j.dir}/lib/xstream.jar" />

    <launch4j>
        <config headerType="gui" outfile="${temp.install.dir}/ExampleApp.exe"
                dontWrapJar="false" jarPath="${temp.install.dir}/ExampleApp.jar"
                chdir="." priority="normal"
                downloadUrl="http://java.com/download"
                stayAlive="false" restartOnCrash="false"
                icon="path/to/ExampleApp.ico">
            <classPath mainClass="org.example.ExampleApp">
                <cp>some-jar.jar</cp>
                <cp>some-other-jar.jar</cp>
                <!-- ... -->
            </classPath>
            <jre bundledJre64Bit="false" bundledJreAsFallback="false"
                 minVersion="1.7.0" maxVersion="" jdkPreference="preferJre"
                 runtimeBits="64/32" maxHeapSize="1024" />
            <versionInfo productVersion="${prod.version}"
                         txtProductVersion="${prod.version}"
                         fileVersion="${prod.version}"
                         txtFileVersion="${prod.version}"
                         copyright="${prod.copyright}"
                         fileDescription="Launches Example App"
                         productName="Example App"
                         companyName="Example Inc."
                         internalName="Flawless Unicorn"
                         originalFilename="ExampleApp.exe" />
        </config>
    </launch4j>

    <!--
    <launch4j configFile="path/to/my/external-config.xml" />
    -->

</target>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM