viernes, 16 de julio de 2010

Ejecutable Java

Una pregunta que todos nos hacemos alguna vez cuando empezamos a trabajar con Java es: ¿cómo creo un ejecutable para mis programas? Esta pregunta, normalmente, parte de una laguna conceptual, ya que no tiene ninguna lógica. Java es un lenguaje interpretado, cuyos programas corren sobre la máquina virtual, luego no tiene sentido pensar en un ejecutable, que es algo que se lanza directamente sobre la máquina real.

De todas formas, posiblemente, lo que la mayoría de nosotros quiere decir con esa pregunta es: ¿¿en serio tengo que escribir java -jar programa.jar en la línea de comandos cada vez que quiero arrancar mi aplicación?? ¿¿No existe una forma de tener un iconito en el escritorio, y hacer doble clic sobre él??

Pues sí, claro. De hecho existen varias alternativas para tener un "ejecutable" java; pero es importante tener claro que en ningún caso se trata de un ejecutable realmente.

La primera opción es crear un fichero .bat, y dentro meter los comandos para situarnos en la ubicación de nuestro programa y lanzarlo. Un ejemplo lo podemos ver con la herramienta JMeter. En la carpeta bin de su instalación encontraremos un fichero jmeter.bat, que hace esto básicamente, fijando montones de parámetros e historias antes, eso sí.

La segunda opción sería simplemente la de indicarle a nuestro amigo Windows que a la hora de abrir los ficheros con extensión jar tiene que utilizar la máquina virtual de Java. Esto lo podemos hacer seleccionando el menú Abrir con... sobre el jar, y eligiendo el correspondiente java.exe. Si le decimos al sistema operativo que utilice siempre esa opción podremos ejecutar los jar con doble clic sobre ellos.

Por último queda otra opcion que nunca he utilizado personalmente, que son los muchos programas que generan "ejecutables java", como exe4j, IzPack o JSmooth. Por lo que he podido ver, en general lo que hacen es simular de alguna forma lo que haría un ejecutable (algunos incluso ofrecen la posibilidad de incluir la JVM dentro del fichero de la aplicación). 

En cualquier caso hay que tener presente que los programas Java se lanzan siempre sobre la JVM, y por tanto no tiene sentido hablar de ejecutables tal cual.

No hay comentarios:

Publicar un comentario

Cualquier aportación será bienvenida