Launch4j exception

I have the following instructions in my build.xml and I get the following exception.

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

This is my build script:

<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 > 

Can someone help me figure out what I'm doing wrong?

+11
source share
4 answers

Show installerLaunch4j.xml configuration. I had a problem with the wrong icon (I used png instead of ico ).

+6
source

The documentation for Launch4j says to do it this way:

 <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" /> 

I have used this method for many years without any problems. FWIW, my path includes "Program Files" with a space that did not cause problems.

+3
source

I had problems running such tools when there were spaces in the paths. Can you try running all of the paths in which there are no spaces?

+1
source

The same exception was reported when I tried to use the Ant task for Launch4j. When called using an external configuration file, the XML worked flawlessly; invoking it using the <config> element did not work.

I created the entire configuration inside my XML Ant build based on the external Launch4j configuration file, used the trial version and error to determine what should be specified as an attribute and what as a hierarchy of elements for the Ant task. In doing this, I also specified all empty string values ​​from XML, such as the errTitle="" and cmdLine="" attributes. DO NOT DO IT. Just drop them.

An example based on my working draft:

 <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> 
0
source

Source: https://habr.com/ru/post/915601/


All Articles