Convertir una aplicación Java en un .EXE de Windows

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:

[CODE]
Main-Class: Servidor
Class-Path: Servidor.jar
[/CODE]

  • 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:

[CODE]
set Path=%Path%;”C:\Program Files\Java\jdk1.6.0_03\bin”
[/CODE]

  • Luego, en el directorio donde está nuestros .class, ejecutamos:

[CODE]
jar vcfm Servidor.jar Servidor.mf Servidor.class
[/CODE]

  • Para probar nuestra aplicación, ejecutamos:

[CODE]
java -jar Servidor.jar
[/CODE]

  • 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.

6 comentario en este artículoDeje el suyo
  1. 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…

  2. No conocía el JSmooth, lo probaré y quizás escriba algo.
    Cuando tengas la web avísame.

    Un saludo.

  3. 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.

  4. Buen aporte muy sencillo y practico, yo tuve problemas con el JSMooth asi que me quedo con esta alternativa, lo que quisiera que me den un alcance es que yo he programado una aplicacion en Jcreator a pedido de un colega, pero mi inconveniente es que al utilizar las librerias para el Jasperreports no logro crear el acceso directo, mediante el create jar file me crea el archivo pero no lo puedo abrir debido a estas librerias, bueno no la puedo migrar a otra aplicacion porq es un trabajo en este lenguaje si alguien me pudiera dar alguna alternativa estare agredecido

    saludos,

  5. en el web de jar2exe afirman q su aplicativo no genera archivos temporales. les dejo la web

    http://www.regexlab.com/en/jar2exe/

  6. bueno me parecia interesante, pero de ahi no lo enti deberian poner algo que diga en donde se hace los pasos, ya que con lo que han puesto no explican muy bien!!!

1 mención a este artículo
Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2014

WordPress