launch4j 2.1.5
Ejecutando launch4j
Fichero de configuración
Importando configuración 1.x
Tarea Ant
Lanzamiento en modo de depuración

Ejecutando launch4j

Ejecute launch4j.exe o el script  launch4j sin argumentos de línea de órdenes para entrar en el modo gráfico (GUI).
launch4j.exe
Para empaquetar un jar en modo consola use launch4jc.exe y especifique el fichero de configuración.
launch4jc.exe config.xml
En Linux use el script launch4j.
launch4j ./demo/l4j/config.xml

Fichero de configuración

Launch4j necesita un fichero de configuración xml para cada ejecutable. Puede crearlo y editarlo convenientemente usando la interfaz gráfica de usuario o su editor favorito. También es posible pasar todos los parámetros de configuración a través de la tarea Ant. Para todos los ficheros excepto excepto para <jre><path> se pueden usar rutas absolutas o relativas a la ruta del fichero de configuración.
<!-- Bold elements are required -->
<launch4jConfig>
<!-- Header types: 0-GUI, 1-console -->
<headerType>0|1</headerType>
<outfile>file.exe</outfile>
<jar>file</jar>
<dontWrapJar>true|false</dontWrapJar>
<errTitle>text</errTitle>
<jarArgs>text</jarArgs>
<chdir>path</chdir>
<customProcName>true|false</customProcName>
<stayAlive>true|false</stayAlive>
<icon>file</icon>
<headerObjects>
<file>object file</file>
<file>object file</file>
...
</headerObjects>
<libs>
<file>w32api lib</file>
<file>w32api lib</file>
...
</libs>
<jre>
<!-- Specify one of the following or both -->
<path>path</path>
<minVersion>x.x.x[_xx]</minVersion>
<maxVersion>x.x.x[_xx]</maxVersion>
<!-- Heap sizes in MB, 0-use default -->
<initialHeapSize>MB</initialHeapSize>
<maxHeapSize>MB</maxHeapSize>
<args>text</args>
</jre>
<splash>
<file>file</file>
<waitForWindow>true|false</waitForWindow>
<timeout>seconds [60]</timeout>
<timeoutErr>true|false</timeoutErr>
</splash>
<versionInfo>
<fileVersion>x.x.x.x</fileVersion>
<txtFileVersion>text</txtFileVersion>
<fileDescription>text</fileDescription>
<copyright>text</copyright>
<productVersion>x.x.x.x</productVersion>
<txtProductVersion>text</txtProductVersion>
<productName>text</productName>
<companyName>text</companyName>
<internalName>filename</internalName>
<originalFilename>filename.exe</originalFilename>
</versionInfo>
</launch4jConfig>
<headerType>
Tipo de cabecera usada para empaquetar la aplicación.
Tipo de cabecera Tipo de aplicación Lanzador Pantalla de bienvenida Esperar a que se cierre la aplicación
0 GUI javaw el empaquetador espera sólo si stayAlive está puesto a true (verdadero), en otro caso termina inmediatamente o después de cerrar la pantalla de bienvenida.
1 consola java no siempre espera y devuelve el código de salida de la aplicación.
<outfile>
El fichero ejecutable de salida.
<jar>
Depende de <dontWrapJar>, si false (falso, por defecto) entonces este elemento es el jar ejecutable que empaquetar. Cuando <dontWrapJar> está puesto a true (verdadero) es la ruta del jar relativa al ejecutable. Por ejemplo, si el lanzador ejecutable y la aplicación jar, llamados calc.exe y calc.jar respectivamente, están en el mismo directorio, entonces debería usar <jar>calc.jar</jar>.
<dontWrapJar>
No empaquetar el fichero jar. Opcional, por defecto a false (falso). Launch4j por defecto empaqueta jars en los ejecutables nativos, usted puede evitar esto poniendo <dontWrapJar> a true (verdadero). El ejecutable actúa como un lanzador e inicia la aplicación especificada en <jar>.
<errTitle>

Opcional, estable el título de la ventana de error que se muestra si Java no se ha podido encontrar, por ejemplo. Este normalmente debería contener el nombre de su aplicación. La cabecera de tipo consola muestra esta propiedad delante del mensaje de error (myapp: error...)

<jarArgs>
Opcional, los argumentos de la línea de órdenes.
<chdir>

Opcional. Cambia el directorio actual a una ruta relativa arbitraria al ejecutable. Si omite esta propiedad o la deja en blanco, no tendrá ningún efecto. Si establece esta propiedad como . se cambiará el directorio actual al mismo directorio que el ejecutable. .. lo cambiará al directorio padre y así sucesivamente.

<chdir>.</chdir>
<chdir>../somedir</chdir>
<customProcName>

Opcional, por defecto puesta a false (falso). Establece el nombre del proceso como el nombre del fichero ejecutable. Crea un fichero temporal en el directorio launch4j-tmp dentro del JRE usado. Estos ficheros son borrados por cualquier aplicación empaquetada por launch4j, que establece el nombre del proceso y usa el mismo JRE. El borrado tiene lugar cuando la aplicación comienza, así que al menos una copia de este fichero siempre estará presente.

<stayAlive>

Opcional, por defecto puesta a  false (falso) en la cabecera GUI, siempre es true (verdadero) en la cabecera de tipo consola. Cuando está activada, el lanzador espera a que la aplicación finalice y devuelve su código de salida.

<icon>
Icono de aplicación en formato ICO. Puede contener varias profundidades de color/resoluciones.
<headerObjects>
Opcional, sólo cabeceras personalizadas. Lista ordenada de los ficheros objeto de cabecera.
<libs>
Opcional, sólo cabeceras personalizadas. Lista ordenada de bibliotecas usadas por la cabecera.
<jre>
Elementos requeridos que agrupan la configuración del JRE.
<path>, <minVersion>, <maxVersion>

La propiedad <path> se usa para especificar la ruta relativa (al ejecutable) de un JRE embebido, que no depende del directorio actual o <chdir>. Nótese que esta ruta no se comprueba hasta la ejecución de la aplicación. Si desea que el empaquetador busque un JRE (público o SDK privado) use la propiedad <minVersion>, también puede especificar <maxVersion> para evitar que se usa una versión superior de Java. Launch4j siempre usará la versión más alta disponible (en el rango mínimo/máximo, por supuesto). Puede combinar estas propiedades para cambiar el proceso de inicio...

<path>
Se ejecuta si el  JRE y javaw.exe están presentes, de otro modo se para con error.
<path> + <minVersion>  [+ <maxVersion>]

Usa primero el JRE, si no puede encontrarlo busca Java, si eso falla muestra un mensaje de error y abre la página de descarga de Java.

<minVersion>  [+ <maxVersion>]
Busca Java, si no se encuentra ninguna versión correcta, muestra un mensaje de error y abre la página de descarga de Java.
<initialHeapSize>
Opcional, tamaño inicial de la pila, en MB, 0 por defecto.
<maxHeapSize>
Opcional, tamaño máximo de la pila, en MB, 0 por defecto.
<args>

Opcional, acepta todo lo que normalmente se le pasaría al lanzador java/javaw: opciones assertion, opciones de sistema y opciones X. Aquí puede mapear variables de entorno y variables especiales EXEDIR (directorio del ejecutable), EXEFILE (ruta completa del fichero del ejecutable) a propiedades del sistema. Todas las referencias a las varibles deben ir rodeadas por signos de porcentaje y entre comillas.

-Dlaunch4j.exedir="%EXEDIR%"
-Dlaunch4j.exefile="%EXEFILE%"
-Denv.path="%Path%"
-Dsettings="%HomeDrive%%HomePath%\\app-settings.ini"
<splash>
Opcional, agrupa los ajustes de configuración de la pantalla de bienvenida. Sólo permitido en la cabecera GUI.
<file>
La imagen de la pantalla de bienvenida en formato BMP.
<waitForWindow>

Opcional, por defecto puesta a true (verdadero). Cierra la pantalla de bienvenida cuando aparece la ventana de la aplicación o un mensaje de error de Java. Si se pone a false, la pantalla de bienvenida se cerrará después del tiempo de espera.

<timeout>

Tiempo de espera. Opcional, por defecto puesto a 60. Número de segundos después de que la ventana de bienvenida se cierre. El tiempo de espera puede causar un error dependiendo del <timeoutErr>.

<timeoutErr>

Opcional, por defecto puesto a true (verdadero). True señala un error después del tiempo de espera de la pantalla de bienvenida, false (falso) cierra la pantalla de bienvenida silenciosamente.

<versionInfo>
Opcional, información de la versión que se mostrará en el Windows Explorer.
<fileVersion>
Versión del fichero. Número de versión 'x.x.x.x'.
<txtFileVersion>
Versión del fichero. Forma libre de versión, por ejemplo '1.20.RC1'.
<fileDescription>
Descripción del fichero presentado al usuario.
<copyright>
Copyright legal.
<productVersion>
Versión del producto. Número de versión 'x.x.x.x'.
<txtProductVersion>
Versión del producto. Forma libre de versión, por ejemplo '1.20.RC1'.
<productName>
Nombre del producto. Texto.
<companyName>
Nombre de la compañía u organización. Texto opcional.
<internalName>
Nombre interno sin extensión, el nombre original del fichero o el módulo, por ejemplo.
 
<originalFilename>
Nombre original del fichero sin la ruta. Permite determinar si un fichero ha sido renombrado por un usuario.

Importando configuración 1.x

Es posible importar un fichero de configuración 1.x usando la interfaz gráfica (GUI). Abra el fichero, corrija las rutas y guárdelo como una nueva configuración xml.

Tarea Ant

Puede especificar una propiedad de directorio launch4j  o cambiar la definición de la tarea.
<property name="launch4j.dir" location="/opt/launch4j" />
Defina la tarea en su script Ant.
<taskdef name="launch4j"
classname="net.sf.launch4j.ant.Launch4jTask"
classpath="${launch4j.dir}/launch4j.jar
:${launch4j.dir}/lib/xstream.jar" />
¡Ejecute la tarea!
<launch4j configFile="./l4j/demo.xml" />
Puede especificar las siguientes propiedades de configuración...

jar="absolute path or relative to basedir"
jarPath="relative path"
outfile
fileVersion
txtFileVersion
productVersion
txtProductVersion

<launch4j configFile="./l4j/demo.xml"
outfile="mydemo.exe"
 fileVersion="1.0.0.0" txtFileVersion="1.0 RC2" />

También puede definir toda la configuración en la tarea, pero no será posible editarla en modo gráfico (GUI). Todos las rutas excepto  <chdir>, <jre><path> y jarPath se calculan usando el atributo de proyecto basedir.

<launch4j>
<config headerType="0" outfile="demo.exe"
dontWrapJar="true" jarPath="demo.jar" >
<jre minVersion="1.4.0" />
</config>
</launch4j>

Lanzamiento en modo depuración

Para asegurarse de que la salida del ejecutable está configurada correctamente, puede usar el lanzamiento en modo depuración que muestra diversa información antes de ejecutar la aplicación Java. Para habilitarlo ponga la variable de entorno launch4j=debug y ejecute el programa empaquetado.
set launch4j=debug
app.exe