2011-04-04 20 views
5

He creado un archivo .exe de mi software (que es una aplicación Java swing). Pero el archivo .exe se ejecuta solo en aquellos equipos que tienen instalada la JVM. Quiero ejecutarlo en computadoras que no tienen instalada la JVM. ¿Cómo logro esto?Ejecutar una aplicación Java en una máquina que no tiene una JVM

+0

"Finalmente he creado el archivo exe de mi software (en java swings). Pero el archivo exe se ejecuta solo en aquellos equipos que tienen JVM instalado .." Puede ejecutar este 'exe' en Mac. & * nix cajas con Java?!? Por cierto, esas palabras son 'Java' y 'Swing', tenga en cuenta los topes. y no pluralidad (singularidad) de ambas palabras. –

+0

Puede agrupar el tiempo de ejecución de JRE JVM en el instalador de aplicaciones (Launch4J, NSIS, InnoSetup, IzPack puede ayudarlo con esto) y hacer que su aplicación se ejecute desde la carpeta de tiempo de ejecución JRE JVM si el diseño del instalador de instalación no opta por la compatibilidad con descargas JRE . Aparte de eso, si Internet está disponible en el lado del cliente, puede utilizar el enfoque de Java Web Start siempre que su servidor de alojamiento de aplicaciones esté listo. – eee

Respuesta

11

Necesita una JVM para ejecutar Java. No hay forma de evitar eso.

Los usuarios que no tengan un JRE instalado deberán obtener uno. No confundas eso con el JDK. No necesitan todas las herramientas de desarrollo, solo el motor de tiempo de ejecución.

+0

Algunas aplicaciones distribuyen un JRE con la aplicación (por ejemplo, SoapUI). Esto hace que la descarga sea mucho más grande y más específica de la arquitectura, pero asegura que se ejecutará de forma automática. En este caso, es posible que desee proporcionar dos o más descargas, algunas con JRE algunas sin ellas. –

+1

Para Windows también hay algunos.Programas de envoltura de jar de exe que incrustarán su jar en un binario nativo que busca una JVM instalada y le pide al usuario que la descargue e instale desde Sun (Oracle) si no está presente. Más o menos como las aplicaciones .Net pueden pedirle al usuario que instale las bibliotecas .Net si no está presente. No los he investigado en mucho tiempo, así que no tengo una buena recomendación o si esto ha caído en desgracia. Solo recuerdo que en los comienzos del swing este comportamiento era una solicitud de función común. – Jberg

2

no sé qué aplicación utilizó para envolver el frasco como un exe pero yo recomiendo usar Launch4j que es un envoltorio que puede comprobar si el usuario ya ha instalado JRE/JDK antes de intentar ejecutar el aplicación y si no muestra un mensaje y abra el navegador para descargar java.

0
  1. Utilice deployJava.js para ayudar a garantizar que el usuario tenga la versión mínima de Java necesaria para ejecutar la aplicación.
  2. Inicie la aplicación. usando Java Web Start.

Esto debería funcionar en sistemas para los que Java está disponible (es decir, no solo Windows).

0

Si realmente quieres hacer esto, dale un vistazo a GCJ. Sin embargo, tenga en cuenta que el soporte AWT/Swing, entre muchas otras cosas, está prácticamente muerto.

Incluso si no perderá nada en términos de características de idioma, antes de ir a la deriva, deténgase y piense si esto es algo que realmente necesita. La gran mayoría de los usuarios tienen Java y al usar GCJ para compilar código de máquina, se pierden todas las posibles optimizaciones de hotspot, creando un espacio mucho más grande en muchos casos y perdiendo compatibilidad con plataformas cruzadas.

Es perfectamente aceptable distribuir un archivo jar y luego indicar a los usuarios que descarguen el JDK si no lo han hecho ya menos que esté haciendo algo muy especializado, es lo que recomendaría en este caso.

5

Deberá enviar JVM con su aplicación de una forma u otra de todos modos. Entonces, ¿por qué no incluir JRE en el paquete de instalación?

Otra opción sería crear un instalador que descargue JRE automáticamente de Internet si no está instalado. Por ejemplo, es posible que desee consultar esta guía http://nsis.sourceforge.net/Java_Launcher_with_automatic_JRE_installation (pero lea primero sobre NSIS si no está familiarizado con ella).

Cuestiones relacionadas