19/08/2013

Java Básico: Convertir en ejecutable una aplicación Java con NetBeans en Ubuntu Linux

Una vez que hemos terminado el código de nuestro proyecto en NetBeans lo lógico es que queramos que esa aplicación funcione “fuera” del IDE y pueda ser usada en cualquier otro equipo. Para ello debemos compilar el proyecto y generar un archivo .jar que será el que ejecutaremos para hacer funcionar nuestra aplicación.

Voy a mostrar paso por paso cómo he conseguido hacerlo en la distribución de Linux Ubuntu 12.04 LTS:

En nuestro proyecto en NetBeans damos al icono de la escoba y el martillo, si nos fijamos, en el panel de la izquierda, pestaña “files” habrá aparecido una nueva carpeta en el proyecto denominada “dist”. En su interior NetBeans habrá creado el archivo .jar de nuestro proyecto:

Compilando con NetBeans
Compilamos el proyecto mediante el icono del martillo y la escoba ("Clean and Build Project")

Accediendo al .jar en NetBeans
En el panel de la izquierda, en la pestaña Files, aparece la nueva carpeta "dist" con el archivo ejecutable .jar dento


Ahora ese archivo .jar, que podemos cambiar de ubicación si queremos, deberemos ejecutarlo desde el Terminal mediante el comando:

java -jar “ruta-completa-del-archivo.jar"

Para obtener esa ruta completa lo que yo hago es arrastrar el icono del archivo .jar a la ventana del Terminal y automáticamente se crea la ruta completa a ese archivo.

Creando la ruta de un archivo en el Terminal mediante drag and drop


Creando la ruta completa de un archivo en el Terminal mediante drag and drop


Una vez hecho esto lo único que hay que hacer el completar el comando con “java -jar “ delante de la ruta.

comando para ejecutar un .jar en Ubuntu Linux


Dando Enter, y si todo está correcto, la aplicación deberá ejecutarse.

Posibles problemas en la ejecución: UnsupportedClassVersionError

Debemos prestar atención especialmente al JDK que hemos usado para la compilación del proyecto y a la máquina virtual que usa nuestro equipo para ejecutar las aplicaciones Java. Si estamos portando la aplicación desarrollada en nuestro equipo personal a otro distinto debemos comprobar previamente que tiene instalada una máquina virtual de Java y si no la tiene descargarla e instalársela, y que las versiones de compilación y ejecución coincidan.

En mi caso mi NetBeans compilaba con un JRE superior a la versión que luego usaba el sistema, lo cual me daba un error de tipo:

Exception in thread "main" java.lang.UnsupportedClassVersionError: ruta/del/paquete/de/mi/aplicación : Unsupported major.minor version 51.0

Para solucionarlo hay que cambiar la versión de la máquina virtual de Java que usa nuestro sistema, lo cual haremos mediante el comando:

sudo update-alternatives --config java

Nos aparecerá un listado con las versiones de las máquinas virtuales que están instaladas en nuestro sistema y elegiremos la que nos convenga.

Elección de máquina virtual JVM JRE en Ubuntu


En mi caso, al usar el JDK7 debía elegir la java-7-openjdk, que correspondía al número 2. Por tanto 2+Enter y solucionado.


Otra opción podría ser aplicar la táctica inversa, es decir, variar la versión de la máquina virtual de Java que usa NetBeans previamente a la compilación del .jar para que coincida con la del sistema.

Referencias


No hay comentarios:

Publicar un comentario