2009-12-28 36 views
23

He utilizado estas tres herramientas de código abierto para empaquetar mis aplicaciones java, pero ahora todas parecen abandonadas. Los tres son muy buenos pedazos de software. ¿Cuáles son las opciones ahora? (o está utilizando Java para el desarrollo de aplicaciones de escritorio ya no es un mercado "caliente" para desarrolladores de aplicaciones para construir & mantener estas herramientas?).Herramientas de empaque de Java: alternativas para jsmooth, launch4j, onejar

1) envoltura de exe: jsmooth - no hay un nuevo desarrollo en 2.5 años - no admite 64 bits. launch4j: no hay desarrollo nuevo en más de un año, admite 64 bits, pero no se puede firmar el exe creado por launch4j, por lo que prefiero jsmooth, pero no admite 64 bits.

2) onejar: Funciona, pero no ha habido un nuevo desarrollo o actualización del sitio web en más de 2,5 años. Entonces, solo quiero cambiar a algo que sea compatible/tenga un plan de respaldo si de repente se rompe con una nueva compilación de Java.

Gracias Edgar

+2

Ver http://stackoverflow.com/questions/1276091/installer-generator-written-in-java/1276408#1276408 –

Respuesta

7

¿Has verificado IzPack? Esta es una gran pieza de software para crear instaladores multiplataforma:

IzPack es un generador de instaladores para la plataforma Java. Produce instaladores ligeros que se pueden ejecutar en cualquier sistema operativo donde esté disponible una máquina virtual Java. Dependiendo del sistema operativo, se puede iniciar con un doble clic o un simple 'java -jar installer.jar' en un shell. El uso más común es distribuir aplicaciones para la plataforma Java, pero también puede usarlo para otros tipos de proyectos. El principal beneficio de IzPack es que proporciona una forma limpia y única de distribuir un proyecto a usuarios que utilizan diferentes sistemas operativos.

Algunas empresas y proyectos muy famosos lo utilizan desde hace muchos años (Sun Microsystems, JBoss/RedHat, el Proyecto de Scala, algunos proyectos ObjectWeb/OW2, XWiki y muchos más). Si es bueno para ellos, debería ser bueno para usted :)

+3

Problema es que no proporciona el exe o instala la instalación de Java. Yo uso Izpack Y JSmooth, Izpack proporciona el instalador, pero aún necesito envolverlo en Jsmooth para que pueda ejecutarse sin necesidad de que Java ya esté instalado. También envuelvo mi programa en otra configuración Jsmooth y esto es lo que instala Izpack, por lo que la aplicación puede iniciarse como un exe. –

1

Maven 2 proporciona la capacidad de crear un contenedor que contiene todas las dependencias como parte de su complemento de ensamblaje. Esto combinado con la configuración del plugin jar del archivo manifest (y específicamente establecer Main-class para la clase con main) es todo lo que necesita para hacer el empaquetado básico.

Hasta ahora, el inicio web en Java ahora se considera la mejor forma de distribuir aplicaciones Java y la capacidad de ensamblaje de Maven 2 combinada con inicio web le proporciona todo lo que necesita sin pasar por la ruta exe.

+0

Java WebStart no ofrece una buena experiencia de usuario si Java no está instalado en la computadora. –

+0

@ ThorbjørnRavnAndersen Hay una secuencia de comandos JS de implementación que detecta si Java está disponible y propone la instalación: https://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/createWebStartLaunchButtonFunction.html – MeTTeO

+0

@MeTTeO Sí. En mi trabajo anterior lo probamos bastante atrás pero no funcionó bien para nosotros. ¿Lo has usado en producción? –

1

Si lo que desea es un exe (en lugar de un instalador en toda regla) se puede hacer uno con NSIS: http://nsis.sourceforge.net/Java_Launcher_with_automatic_JRE_installation

Sí, NSIS es un instalador, pero que puede tener esto justamente se una jarra en la misma directorio eliminando todas las cosas del instalador. Básicamente funciona como launch4j pero es mucho más configurable.

6

Dado que ninguna de las respuestas fueron aprobados, y JavaFX 2.2 no se ha mencionado anteriormente (no estaba disponible en el momento de las respuestas) aquí va:

JavaFX 2.2 (parte de ejecución de Java y el SDK desde 7u6) permite construir exe/dmg/rpm nativos que también se etiquetan a lo largo del componente RT completo. Creo que esta es una respuesta válida a su necesidad, así como una solución oficialmente respaldada de Oracle.

https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_for_javafx

+0

Es una respuesta válida pero necesita una Mac para compilar paquetes nativos para Mac, ya que probablemente llame a hdiutil para crear un DMG archivo. Existe el mismo problema con los RPM ya que usa rpmbuild. Mira mi respuesta, puedo usar cualquier sistema operativo compatible con Java para construir RPM, DEB, APP, ... – gouessej

+0

Buen punto, @gouessej – akauppi

0

Como yo estaba harto de los cambios recientes de seguridad en Java Webstart, he creado mi propia herramienta, JNDT. Está bajo GPL.

Va más allá de la sugerencia de akauppi porque permite crear paquetes GNU Linux incluso en Mac y Windows :) Lo uso para crear paquetes Mac bajo GNU Linux también. Por el momento, es solo una única biblioteca Ant con algunas dependencias que permite crear paquetes nativos de aplicaciones autónomas para GNU Linux, Mac OS X y Windows. Lo uso para mi shooter en primera persona y estoy muy contento con él. Agrupa el JRE pero puede usar el sistema JRE si lo desea.

P.S: JNDT puede crear un instalador nativo de Windows como un ejecutable con NSIS incluso bajo GNU Linux.

Entiendo que la licencia GPL desanima a algunos desarrolladores a usar mi herramienta. En este caso, más bien use PackR.

+0

Voto sin explicación, veo que todavía hay algunos chicos inteligentes aquí ... – gouessej

Cuestiones relacionadas