I desarrollar y distribuir una aplicación Java Swing que utiliza Apache Batik y JavaCV. He actualizado a través de Java 1.6, 7 y 8. Los instaladores para MacOS, Windows y Linux están construidas con Javapackager. Java 8 es finales de apoyo Ene '19 y no puedo encontrar una solución para empaquetar y distribuir al Java 11, la nueva versión LTS.
Ni JavaCV o batik producen frascos modulares pero han conseguido volver a empaquetar hasta el punto donde puedo compilar y producir un tarro de Java ejecutable en un 11, aplicación funciona bien, pero no se puede empaquetar para su distribución. Estaba planeando dejar caer a Java 10 para usar javapackager y ate el 11 de tiempo de ejecución de allí pero utiliza JLINK para producir un tiempo de ejecución de encargo, JLINK falla porque JavaCV y batik no son modulares. jdeps no producirán un módulo de info.class al parche y hacerlos modular debido a las referencias no satisfechas en batik y JavaCV, a pesar de que mi aplicación funciona bien sin ellos.
Como resultado Voy a tener que salir de la base de código en Java 8, y enviarlo incluso más tiempo, aunque no se admite.
Sé que hay una llamada para crear un reemplazo para javapackager pero eso no va a estar allí hasta bien después de Java 8 está en desuso. Y todavía había necesidad de proyectos de Batik y JavaCV refactorizar y construir frascos modulares para producir un tiempo de ejecución personalizado.
¿Alguien puede ofrecer ninguna otra solución, por favor? ¿Me he perdido algo? Gracias.
He tenido el mismo problema. Quería utilizar JDK 11, pero de acuerdo con JDK-8212780 PEC 343 está prevista para el 13 de JDK, por lo que tendremos que esperar un poco más. Empaquetado de aplicaciones "nativas" autónomos menores de Java 8 - 10 no fue un problema, ya que se incluyó el empaquetador (al menos en el Oracle JDK).
Hoy me enteré de este correo electrónico y pensé que me gustaría darle una oportunidad: Usted puede ver mi proyecto de ejemplo en github.com/skymatic/javafx11-test , que Empaqueté con éxito utilizando el back-portado jpackager
desde la rama de desarrollo de JDK .
Lo que hice aquí:
- Creado un nuevo proyecto HelloWorld usando OpenJDK 11 y 11 OpenJFX.
- Descargado el empaquetador y invocarla desde la acumulación de Maven (nota que tiene que vivir con el JDK y que hay que configurar
JAVA_HOME
para que funcione ...) - Bono: He utilizado
jdeps
para averiguar la dependencia de mi frasco no modular y establecer el--add-modules
parámetro para producir una imagen en tiempo de ejecución más pequeña
Por supuesto, es aún más fácil para los proyectos modulares: En esta confirmación a mi proyecto de ejemplo se puede ver que he utilizado jpackager
parámetros 's para la ruta del módulo y el módulo principal en lugar de la ruta de clase y la clase principal.