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
Respuesta
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.
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. –
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
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.
- Utilice deployJava.js para ayudar a garantizar que el usuario tenga la versión mínima de Java necesaria para ejecutar la aplicación.
- 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).
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.
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).
- 1. Ejecutar el método principal de Java desde una aplicación de escritorio Java en una JVM diferente
- 2. ¿PHP tiene una máquina virtual como Java?
- 3. ¿Cómo puedo ejecutar una aplicación OpenGL instalada en una máquina Linux desde mi máquina Windows?
- 4. ¿Hay una JVM por aplicación Java?
- 5. ¿Puedo usar OpenCL en una aplicación que distribuyo a una máquina que no es desarrollador?
- 6. ¿Cuántas JVM podemos tener en una sola máquina?
- 7. Eclipse - Ejecutar proyecto en una máquina remota
- 8. Ejecutar una aplicación web java en IIS
- 9. Ejecutar una aplicación Java en una página web
- 10. Instalar una aplicación ClickOnce en una máquina fuera de línea
- 11. Cómo se puede escribir una JVM en Java
- 12. Cómo reconocer que una aplicación tiene la intención de ejecutar \ Ejecutar un archivo?
- 13. Ejecutar una aplicación WPF en Windows XP
- 14. Cómo ejecutar el proceso en una máquina remota, en C#
- 15. ¿Es posible llamar al método dentro de una aplicación Java desde una JVM diferente?
- 16. Ejecutar un archivo jar en una aplicación Java en ejecución
- 17. ¿Cómo ejecutar una API hecha para 32 bits en una máquina de 64 bits?
- 18. Erlang en una JVM/CLR
- 19. Ejecutar una aplicación Java en un proceso separado
- 20. ¿Qué clases son absolutamente necesarias para ejecutar una VM Java?
- 21. ¿Puedo ejecutar más de una JVM en mi única PC?
- 22. Empaquetar y ejecutar una aplicación Java con dependencias de primavera
- 23. ¿No se puede ejecutar un servicio en una cuenta que no tiene contraseña?
- 24. ¿Puedo ejecutar ejecutar una aplicación de Android como una aplicación de escritorio independiente sin un emulador?
- 25. Windows Server no puede ejecutar una aplicación generada por py2exe
- 26. ¿Cómo ejecutar múltiples instalaciones Perl en una máquina?
- 27. Cómo crear una máquina de estados simple en Java
- 28. Ejecutar ssh-add con Fabric en una máquina
- 29. ¿Cómo bloqueas una JVM?
- 30. qué funciones están incluidas en una JVM
"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. –
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