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 la línea de comandos.
– Documentación de Oracle
los javapackager
la utilidad se envía con el JDK. Puede generar archivos .exe con la -native exe
bandera, 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, clase principal, vm args, program args.
- Nombre ejecutable personalizado que aparece en el administrador de tareas.
- Args JVM adicionales para un uso de memoria más flexible.
- Reemplazo de íconos incorporado para íconos personalizados.
- [more bullet points follow]
– Página web de WinRun4J
WinRun4J es una utilidad de código abierto. Tiene muchos características.
packr
Empaqueta su JAR, activos y una JVM para su distribución en Windows, Linux y Mac OS X, agregando un archivo ejecutable nativo para que parezca una aplicación nativa. Packr es más adecuado para aplicaciones GUI.
– packr README
packr es otra herramienta de código abierto.
JSmooth
JSmooth es un contenedor ejecutable de Java. Crea lanzadores nativos de Windows (.exe estándar) para sus aplicaciones java. Hace que la implementación de Java sea mucho más fluida y fácil de usar, ya que puede encontrar cualquier VM Java instalada por sí mismo.
– 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 (excelente 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 con Java Runtime Environment de Sun. Se admiten tanto las aplicaciones de consola como las de ventana.
– Sitio web de JexePack
JexePack es un software de prueba. Se requiere pago para el uso de producción, y los archivos exe 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á rápidamente a los cambios de la industria, llegará al mercado más rápido y brindará una experiencia atractiva al cliente. Y conozca la vulnerabilidad de los componentes de OSS de su proyecto antes de enviarlo.
– Sitio web de InstallAnywhere
InstallAnywhere es un paquete comercial / empresarial que genera instaladores para programas basados en Java. Probablemente sea 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, agregando 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 a EXE: 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”.
Launch4j
Launch4j es una herramienta multiplataforma para empaquetar aplicaciones Java distribuidas como jar en ejecutables nativos de Windows livianos. El ejecutable se puede configurar para buscar una determinada versión de JRE o usar una incluida, y es posible establecer opciones de tiempo de ejecución, como el tamaño de pila inicial / máximo. El contenedor también proporciona una mejor experiencia de usuario a través de un icono de 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.
– Sitio web de Launch4j
ACTUALIZAR: GCJ está muerto. Se eliminó oficialmente del proyecto GCC en 2016. Incluso antes de eso, estuvo prácticamente abandonado durante siete años y, en cualquier caso, nunca estuvo lo suficientemente completo como para servir como una implementación alternativa viable de Java.
Busque otro compilador Java AOT.
GCJ: El compilador GNU para Java puede compilar código fuente Java en 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 (consulte ¿Qué API de Java son compatibles? ¿Qué tan completo es el soporte? Pregunta de las Preguntas frecuentes). No he usado mucho GCJ, pero por las pruebas limitadas que he hecho con aplicaciones de consola, parece estar 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. (Puede haber formas de evitar esto que no conozco. Otra opción serían los programas de compresión ejecutables).
En términos de instaladores de código abierto, Nullsoft Scriptable Install System es un instalador programable. Si tiene curiosidad, hay ejemplos aportados por usuarios sobre cómo detectar la presencia de un JRE e instalarlo automáticamente si el JRE requerido no está instalado. (Solo para informarle, no he usado NSIS antes).
Para obtener más información sobre el uso de NSIS para instalar aplicaciones Java, consulte mi respuesta a la pregunta “¿Cuál es la mejor manera de distribuir aplicaciones Java?”