2011-08-15 11 views
49

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 general .EXE. Sin embargo, no puedo encontrar ninguna documentación que describa cómo hacer esto.¿Cómo agrupar un JRE con Launch4j?

¿Cómo empaco un JRE con el EXE? Además, ¿dónde obtengo un JRE compacto y portátil? Los enlaces de descarga en Oracle son para los paquetes de instalador.

+1

Launch4j le permite agrupar un JRE ** con ** su exe, así que junto a él. No puede usarlo para incrustar el JRE en su exe. – THelper

Respuesta

53

Después de algunos intentos que finalmente conseguir una solución para empaquetar el JRE en mi solicitud:

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 el camino no es el archivo java.exe. El camino a la jre es relativo a la posición de .exe y debe apuntar a una carpeta antes del archivo java.exe

La carpeta jre que estoy usando es solo una copia & pegar desde la carpeta jre instalada en un sistema de ventanas.

+4

¡Eso me ayudó mucho! Los documentos no son demasiado claros sobre esto ... Funciona como un encanto :-) –

+1

¿Algún enlace a una guía muy completa? Me está costando un poco entender esto. –

+0

Hola, ¿qué es esta ruta ../jre o bien es una ruta existente que está en la carpeta C: //..java o un nuevo instalador JRE de Java que se descarga. –

-1

La jre generalmente se puede encontrar en su carpeta SDK. Sí, los enlaces en línea son instaladores, pero una vez que se instala, el JRE ahora se encuentra en su disco local. Mina se encuentra en

${jdk folder}\jre 

Las partes que no necesite de la JRE probablemente podrían ser retirados manualmente si realmente quería (no estoy seguro de cuál es disponible en línea).

+0

¿Cómo lo adjunto al EXE? Intento empaquetar todo en el contenedor para no tener que preocuparme si el usuario tiene Java instalado. Me doy cuenta de que solo tener que descargar Java es probablemente la mejor idea; Sin embargo, me gustaría experimentar con todas mis opciones de implementación. – CodeBunny

+1

@CodeBunny Esto no es posible solo con Launch4j, pero alguien encontró otra buena solución: http://mark.koli.ch/bundle-java-the-jre-and-launch-a-java-app-with-7zip- sfx – Zero3

10

La única forma en que podría agrupar un JRE era utilizar Launch4J y el compilador Inno Setup.

Primero, cree una carpeta 'jre6' (por ejemplo) en el mismo directorio que su archivo de salida (.exe).

Luego copie el JRE de su sistema en su carpeta jre6.

Luego abres Launch4J y configuras la 'ruta JRE incluida' - solo escribe: jre6. A continuación, haga clic en el botón Generar (obviamente, después de haber ingresado todos los demás parámetros, pero el único valor que debe ingresar en la pestaña 'JRE' es el valor 'Ruta JRE incluida').

Tendría Se espera que funcione, pero si mueves el .exe a una nueva ubicación (por lo que ya no se ubicará junto con tu carpeta jre6) obtienes la opción "Esta aplicación se configuró para usar un Java Runtime Environment incluido pero el tiempo de ejecución falta o corrupto "error cuando intenta ejecutar la aplicación ...

He estado jugando con esto todo el día y no había forma de que pudiera hacer que Launch4J incluyera el JRE en el archivo .exe. Realmente es pobre en mi opinión, ya que su documentación no parece aludir a este tema en absoluto.

Lo que hice para resolver fue utilizar Inno Setup Compiler. Esta aplicación se utiliza para ajustar su .exe como un archivo de Windows Installer. Así que agregué una configuración al script de ISC que copia el JRE en el paquete de instalación. La línea he añadido a la secuencia de comandos (en la sección [Archivos]) fue:

Source: "M:\Netbeans\MyApp\jre6\*"; DestDir: "{app}\jre6\"; Flags: recursesubdirs createallsubdirs 

... un poco de la solución, pero lo hizo el truco.

Repita todos los pasos anteriores, y debe ordenarlos.

RESPUESTA DE TOMAR here ..user1617737

0

El mismo problema como el que aparearse. No te preocupes ahora. Todo se resuelve con la profundidad máxima para resolver soluciones futuras. Solución de cómo puede agrupar su JRE para su jar sin la necesidad de que el usuario tenga que instalar java o no. Su aplicación java se ejecutará.

  1. Copia lib y bin carpeta de su carpeta JRE a la carpeta dist proyecto

jar to exe conversion

  1. launch4j abierta e introduzca la siguiente configuración. enter image description here

El truco es que necesita para dar la ruta completa a la que incluye javaw.exe.

Enjoy !!!!

Cuestiones relacionadas