¿Cómo agrupar un JRE con Launch4j?

Resuelto CodeBunny asked hace 13 años • 7 respuestas

Tengo Launch4J en mi computadora y es un gran programa. Una de sus características que me interesa es la capacidad de agrupar un JRE en el archivo .EXE general. Sin embargo, no puedo encontrar ninguna documentación que describa cómo hacer esto.

¿Cómo incluyo un JRE con el EXE? Además, ¿dónde consigo un JRE compacto y portátil para ejecutar? Los enlaces de descarga en Oracle son para los paquetes de instalación.

CodeBunny avatar Aug 16 '11 04:08 CodeBunny
Aceptado

Después de algunos intentos, finalmente consigo una solución para incluir el jre en mi aplicación:

Empaqueto mi aplicación como un archivo zip con las siguientes carpetas dentro:

containerFolder
|- jre
      |-bin (in bin there is java.exe)
      |-lib
|- cfg (to save the user configuration, but it's not needed)
|- bin (my application with the .exe and the .jar and all the other stuff)

En el archivo xml de launch4j configuro el jre así:

<jre>
    <path>../jre</path>
    <opt>-DgvSIG.confDir=../cfg</opt>
</jre>

El truco aquí es que la ruta no es al archivo java.exe. La ruta al jre es relativa a la posición del .exe y debe apuntar a una carpeta antes del archivo java.exe.

La carpeta jre que estoy usando es solo copiar y pegar de la carpeta jre instalada en un sistema Windows.

Francisco Puga avatar Sep 28 '2011 10:09 Francisco Puga

Hice lo siguiente y funcionó para mí usando la versión Launch4j 3.11:

  1. Creé una nueva carpeta para mi aplicación (llamada, por ejemplo, MyApp).
  2. Copié el archivo jar de la carpeta dist del proyecto java a MyApp junto con la carpeta lib.
  3. Creé una carpeta llamada jre en la carpeta de mi aplicación MyApp, por lo que ahora la carpeta MyApp contiene:
    • MiAplicación.jar
    • lib <- esto tiene las bibliotecas que necesita mi aplicación java.
    • jre
  4. Copié las carpetas bin y lib de la carpeta java jre (C:\Program Files (x86)\Java\jre7) a MyApp\jre
  5. En Launch4j, habiendo configurado todas las opciones requeridas, luego configure la ruta JRE incluida en "jre"

    Opciones de Launch4j JRE

  6. Asegúrese de que en las opciones de búsqueda esté seleccionado "Usar solo tiempos de ejecución JDK privados".
Ahmed Awad avatar Mar 29 '2018 09:03 Ahmed Awad