Si hallas algún problema en tu código o trabajo, recuerda probar siempre en un entorno de testing antes aplicar el código al trabajo final.
Solución:
Usuarios de su aplicación Java debe tener el JRE instalado para ejecutarlo.
Puede decirles que instalen Java primero, o distribuir JRE con su aplicacióncomo lo hace Processing.
Tenga en cuenta, sin embargo, que su programa empaquetado será pesado si incluye JRE con él. Y, si desea hacer eso, los usuarios deberán descargar el paquete apropiado para su plataforma.
Contenedores de Java ejecutables
Toman su aplicación Java como entrada y envolver en un ejecutable (para una plataforma específica). Puedes personalizarlos como quieras; y si el usuario no tiene Java instalado, se abrirá la página de descarga.
Algunos ejemplos son Launch4J, JSmooth y Jar2EXE.
Instaladores
Son aplicaciones independientes configuradas para Copiar los archivos de su aplicación en la computadora del usuario y (opcionalmente) cree un acceso directo.
Algunos instaladores están escritos en Java, por lo que son multiplataforma. En este caso, el instalador es un .jar
.
Algunos otros dependen de la plataforma, pero tiene la ventaja de que no necesita envolverlos.
Instaladores de Java: IzPack, Packlet, PackJacket, Antígeno, …
Inicio web de Java
Es una característica de Java que les permite a los usuarios ejecutar fácilmente sus aplicaciones. les das un .jnpl
expediente,
lo abren y Java descarga la última versión de su aplicación y la ejecuta. ¡Sin problemas de embalaje!
Vea la lista completa de recursos aquí.
Java Web Start creo que es la opción que estás buscando…
Editar
Comentario de Basil Bourque @ 2020:
Oracle está eliminando Java Web Start. Ver su libro blanco,
Actualización de la hoja de ruta del cliente Java con fecha 2020-05-11. Puede que le interese la implementación de código abierto de Java Web Start conocida como
AbrirWebStart proyecto.
Paquete JVM dentro de su aplicación
La solución moderna para implementar una aplicación de escritorio basada en Java es agrupar una JVM con su aplicación, entregada al usuario como un paquete en el que se puede hacer doble clic, al igual que otras aplicaciones “normales”. Piense en la JVM como otra dependencia que se incorporará en su aplicación final.
Aprender acerca:
- Sistema de módulo de plataforma Java
- jlink (JEP 282)
- jpackage (JEP 343)
Podría enviar una aplicación JavaFX (OpenJFX) de esta manera, así como una aplicación Swing (la predecesora de JavaFX).
Una ventaja de este enfoque es que sabe exactamente qué JVM se está utilizando para ejecutar su aplicación en particular. Por supuesto, también significa que debe lanzar una nueva versión de su aplicación cuando una actualización de JVM contiene una solución relevante. Sus usuarios ya no se preocupan por descargar, instalar y actualizar una JVM, ya que esa tarea ahora es responsabilidad del desarrollador.
Una desventaja de este enfoque es que debe compilar, probar y distribuir binarios separados de su aplicación, uno para cada plataforma (macOS, MS Windows, BSD, Linux, etc.).
Véase también mi respuesta a una pregunta relacionada, Cómo usar jdk sin jre en Java 11.
Aplicación nativa compilada
Una variación de vanguardia de este enfoque es crear una versión de código nativo compilada con anticipación (en lugar de JIT) de su aplicación utilizando GraalVM y su generador de imágenes nativo.
Posiblemente relacionado: Proyecto Leyden de Oracle. Vea el anuncio inicial de Mark Reinhold y vea este artículo, 2020-05-07.
Inicio web de Java reducir progresivamente
Algunas otras respuestas discuten Inicio web de Java. Sé consciente de Inicio web de Java y Subprogramas de Java ambas tecnologías están siendo eliminadas por Oracle. Ver su libro blanco, Actualización de la hoja de ruta del cliente Java con fecha 2020-05-11. Una posible alternativa es la implementación de código abierto de Java Web Start conocida como AbrirWebStart proyecto.