Convertir una aplicación Java en un .EXE de Windows
Autor: Luciano
Tomando como base el ejemplo de Servidor y Cliente TCP en Java vamos a crear un archivo ejecutable de Windows .EXE con el Servidor.
Bien sabemos, que Java no genera código de máquina, sinó un bytecode (.class) que luego es interpretado por la Máquina Virtual. Lo que haremos, en principio será generar un archivo .jar donde introducir todos los archivos necesarios para ejecutar nuestra aplicación y luego crear una aplicación que lance ese .jar.
- En principio, dentro del .jar también deberemos incluir un "manifest file" donde se añadirá información como el nombre de la clase donde se encuentra el método main() y el path donde se encuentran los.class:
Main-Class: Servidor
Class-Path: Servidor.jar
- Para generar el .jar utilizaremos el programa jar incluido en el JDK. Para ello, en principio agregamos a nuestra variable de entorno Path la ruta de los binarios del JDK:
set Path=%Path%;"C:\Program Files\Java\jdk1.6.0_03\bin"
- Luego, en el directorio donde está nuestros .class, ejecutamos:
jar vcfm Servidor.jar Servidor.mf Servidor.class
- Para probar nuestra aplicación, ejecutamos:
- Finalmente, para generar nuestro .exe, podemos:
- Compilar un programa en C que ejecute un system("java -jar Servidor.jar")
- Utilizar jStart32, que básicamente hace lo mismo

Pongo, a disposición para la descarga, el proyecto completo sockets_demo (Servidor y Cliente TCP), que incluye los .java, los .class, el mf, el jar y el .exe.
4 Respuestas para "Convertir una aplicación Java en un .EXE de Windows"
Muy buen aporte, ehm, yo prefiero utilizar el JSmooth para crear exe, este metodo no lo sabia, asi que creo que lo probare, muy wena web, yo tambien pondre una similar en poco tiempo…
No conocía el JSmooth, lo probaré y quizás escriba algo.
Cuando tengas la web avísame.
Un saludo.
[...] el post Convertir una aplicación Java en un .EXE de Windows, JSMooth es una aplicación crear ejecutables para Windows de aplicaciones desarrolladas en Java. [...]
El problema de JSMooth es que te genera los temporales y te deja en esos temporales al archivo jar.
Yo busco una aplicacion de libre distribucion que no genere temporales.
Comentarios: