Pregunta

Si tengo un archivo fuente Java (* .java) o un archivo de clase (* .class), ¿cómo puedo convertirlo en un archivo .exe?

También necesito un instalador para mi programa.

¿Fue útil?

Solución

javapackager

  

La herramienta Java Packager compila, empaqueta y prepara aplicaciones Java y JavaFX para su distribución. El comando javapackager es la versión de línea de comandos.

     

& # 8211; Documentación de Oracle

La utilidad javapackager se envía con el JDK. Puede generar archivos .exe con la marca -native exe , entre muchas otras cosas.

WinRun4J

  

WinRun4j es un lanzador de Java para Windows. Es una alternativa a javaw.exe y ofrece los siguientes beneficios:

     
      
  • Utiliza un archivo INI para especificar classpath, main class, vm args, program args.
  •   
  • Nombre del ejecutable personalizado que aparece en el administrador de tareas.
  •   
  • Argumentos JVM adicionales para un uso de memoria más flexible.
  •   
  • Sustituto de icono incorporado para el icono personalizado.
  •   
  • [siguen más viñetas]
  •   
     

& # 8211; Página web de WinRun4J

WinRun4J es una utilidad de código abierto. Tiene muchas características.

packr

  

Empaqueta su JAR, sus activos y una JVM para su distribución en Windows, Linux y Mac OS X, agregando un archivo ejecutable nativo para que aparezca como una aplicación nativa. Packr es el más adecuado para aplicaciones GUI.

     

& # 8211; packr README

packr es otra herramienta de código abierto.

JSmooth

  

JSmooth es un contenedor ejecutable de Java. Crea lanzadores de Windows nativos (estándar .exe) para sus aplicaciones java. Hace que la implementación de Java sea mucho más sencilla y fácil de usar, ya que es capaz de encontrar cualquier Java VM instalada por sí misma.

     

& # 8211; El sitio web de JSmooth

JSmooth es de código abierto y tiene características, pero es muy antiguo. El último lanzamiento fue en 2007.

JexePack

  

JexePack es una herramienta de línea de comandos (ideal para secuencias de comandos automatizadas) que le permite empaquetar su aplicación Java (archivos de clase), opcionalmente junto con sus recursos (como GIF / JPG / TXT / etc) , en un solo comprimido Windows EXE de 32 bits, que se ejecuta utilizando el Java Runtime Environment de Sun. Tanto la consola como las aplicaciones de ventana son compatibles.

     

& # 8211; El sitio web de JexePack

JexePack es un software de prueba. El pago es requerido para el uso de producción, y los archivos ejecutables creados con esta herramienta mostrarán " recordatorios " sin pago. Además, el último lanzamiento fue en 2013.

InstallAnywhere

  

InstallAnywhere facilita a los desarrolladores la creación de software de instalación profesional para cualquier plataforma. Con InstallAnywhere, se adaptará a los cambios de la industria rápidamente, llegará al mercado más rápido y brindará una experiencia de cliente atractiva. Y conozca la vulnerabilidad de los componentes OSS de su proyecto antes de realizar el envío.

     

& # 8211; El sitio web de InstallAnywhere

InstallAnywhere es un paquete comercial / empresarial que genera instaladores para programas basados ??en Java. Probablemente es capaz de crear archivos .exe.

Archivos JAR ejecutables

Como alternativa a los archivos .exe, puede crear un archivo JAR que se ejecute automáticamente al hacer doble clic, por agregar un punto de entrada al manifiesto JAR .


Para más información

Una excelente fuente de información sobre este tema es el artículo de Excelsior " Convertir Java para EXE & # 8211; Por qué, cuándo, cuándo no y cómo " ;.

Consulte también el artículo complementario " Las mejores herramientas de conversión de JAR a EXE, gratuitas y comerciales " ;.

Otros consejos

Launch4j

  

Launch4j es una herramienta multiplataforma para envolver aplicaciones Java distribuidas como archivos jar en ejecutables nativos ligeros de Windows. El ejecutable puede configurarse para buscar una determinada versión de JRE o usar una empaquetada, y es posible configurar las opciones de tiempo de ejecución, como el tamaño del montón inicial / máximo. La envoltura también proporciona una mejor experiencia de usuario a través de un ícono de la aplicación, una pantalla de presentación nativa anterior a JRE, un nombre de proceso personalizado y una página de descarga de Java en caso de que no se pueda encontrar el JRE adecuado.

     

& # 8211; El sitio web de Launch4j

  

ACTUALIZACIÓN: GCJ está muerto. Fue eliminado oficialmente del proyecto GCC en 2016. Incluso antes de eso, prácticamente se abandonó durante siete años, y en cualquier caso, nunca estuvo lo suficientemente completo para servir como una implementación alternativa de Java viable.

     

Ve a buscar otro compilador de Java AOT.

GCJ: el compilador de GNU para Java puede compilar el código fuente de Java en un código de máquina nativo, incluidos los ejecutables de Windows.

Aunque no todo en Java es compatible con GCJ, especialmente los componentes de la GUI (ver ¿Qué API de Java es compatible? ¿Qué tan completo está el soporte? de la pregunta Preguntas frecuentes ). No he usado GCJ mucho, pero a partir de las pruebas limitadas que he hecho con las aplicaciones de consola, me parece bien.

Una desventaja de usar GCJ para crear un ejecutable independiente es que el tamaño del EXE resultante puede ser bastante grande. Una vez compilé una aplicación de consola trivial en GCJ y el resultado fue un ejecutable de aproximadamente 1 MB. (Es posible que no conozca alguna forma de evitar esto. Otra opción serían los programas de compresión ejecutables).

En términos de instaladores de código abierto, el Nullsoft Scriptable Install System es un instalador de scripts. Si tiene curiosidad, hay ejemplos contribuidos por el usuario sobre cómo detectar la presencia de un JRE e instalarlo automáticamente si el JRE requerido no está instalado. (Solo para hacerle saber, no he usado NSIS antes).

Para obtener más información sobre cómo usar NSIS para instalar aplicaciones Java, eche un vistazo a mi respuesta para la pregunta " ¿Cuál es la mejor manera de distribuir aplicaciones Java? "

Podrías hacer un archivo por lotes con el siguiente código:

start javaw -jar JarFile.jar

y convierte el .bat en un .exe usando cualquier convertidor de .bat a .exe.

Estamos usando Install4J para crear instaladores para Windows o Unix entornos.

Es fácilmente personalizable hasta el punto en el que desea escribir scripts para acciones especiales que no se pueden realizar con diálogos estándar. Pero aunque estamos configurando los servicios de Windows con él, solo estamos utilizando componentes estándar.

  • instalador + lanzador
  • windows o unix
  • programable en Java
  • tarea de la hormiga
  • muchos paneles y acciones estándar personalizables
  • opcionalmente incluye o descarga un JRE
  • también puede iniciar servicios de Windows
  • múltiples idiomas

Creo que Launch4J es de la misma compañía (solo el lanzador, no el instalador).

PD: lamentablemente no me pagan por este aval. Simplemente me gusta esa herramienta.

La última Java Web Start se ha mejorado para permitir una buena operación fuera de línea y para permitir " instalación local " ;. Vale la pena mirar.

EDIT 2018: Java Web Start ya no se incluye con los JDK más nuevos. Oracle está presionando hacia un " despliegue su aplicación localmente con un JRE adjunto " modelo en su lugar.

Si necesita convertir toda su aplicación a código nativo, es decir, un archivo EXE más DLL, hay ExcelsiorJET . Encontré que funciona bien y proporcioné una alternativa para agrupar un JRE.

IMHO JSmooth parece hacer un buen trabajo.

Yo diría que launch4j es la mejor herramienta para convertir un código fuente java (.java) en un archivo .exe Incluso puede empaquetar un jre con él para su distribución y el exe puede incluso ser iconificado. Aunque el tamaño de la aplicación aumenta, se asegura de que la aplicación funcione perfectamente incluso si el usuario no tiene un jre instalado. También se asegura de que pueda proporcionar el jre específico requerido para su aplicación sin que el usuario tenga que instalarla por separado. Pero desafortunadamente, Java pierde su importancia. Su soporte multiplataforma es totalmente ignorado y la aplicación final solo es compatible con Windows. Pero eso no es un gran problema, si solo atiende a usuarios de Windows.

Puede usar Janel . Este último funciona como un lanzador de aplicaciones o un lanzador de servicios (disponible desde 4.x).

Alternativamente, puede usar algún traductor de java a c (por ejemplo, JCGO ) y compile los archivos C generados en un archivo binario nativo (.exe) para la plataforma de destino.

Se me puede perdonar por estar en contra de convertir un programa java a una aplicación .exe y tengo mis razones. El más importante es que un programa java se puede compilar en un archivo jar desde A lot of IDE's. Cuando el programa está en formato .jar, puede ejecutarse en varias plataformas en lugar de .exe, que solo se ejecutaría en un entorno muy limitado. Estoy de acuerdo con la idea de que los programas Java no se conviertan a Exe a menos que sea muy necesario. Siempre se pueden escribir archivos .bat que ejecutan el programa Java mientras se trata de un archivo jar.

si es realmente necesario convertirlo a exe, el convertidor Jar2Exe lo hace en silencio y también se pueden adjuntar bibliotecas compiladas junto con la aplicación principal.

Puede convertir jar a exe utilizando jar2exe . Sin embargo usted necesita comprar el software. Si necesita un software de código abierto, sugeriría JSmooth .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top