Generar archivo jar ejecutable en Eclipse y argumentos del método main
En el tutorial "Cómo crear y ejecutar un programa Java" vimos como crear un archivo .jar ejecutable usando la consola de MSDOS y las herramientas de la "distribución Java Development Kit". En este tutorial veremos como hacerlo usando Eclipse IDE y haremos un ejemplo usando parámetros desde la línea de comandos que serán recogidos por nuestro programa java.
Generar un Jar ejecutable
Para probar en la consola de MS-DOS, vamos a generar un archivo jar que ejecute la clase ConsoleInput del tutorial anterior. Es importante ejecutar antes la clase desde Eclipse; con Run As - Java Application para que se cree una configuración de lanzamiento.
Para crear el archivo ".jar" oprimir el Botón derecho del ratón en el proyecto - export - Java - Runnable JAR File
Elegir en Launch configuration la clase ConsoleInput. En el destino poner el nombre y lugar que queremos para el archivo jar y finalizar.
Para probar, abrir una ventana MS-DOS con cmd.exe, navegar hasta el directorio donde está el Jar y ejecutarlo con java -jar console.jar
Argumentos del método main
Por último, vamos a crear una clase para probar los parámetros que recibe el método main. String[] args es un array de String donde se colocan los argumentos que se agregan cuando ejecutamos una clase Java. Vamos a asumir que vendrá un argumento con el nombre del usuario que quedaría guardado en la primer posición del array args[0]).
package com.edu4java.javatutorials; public class ConsoleParameters { public static void main(String[] args) { System.out.println("Hello "+args[0]); } }
Ejecutemos con Botón derecho en el proyecto - export - Java - Runnable JAR File y en la consola veremos:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at com.edu4java.javatutorials.ConsoleParameters.main(ConsoleParameters.java:6)
Esto es porque fue ejecutado por Eclipse sin argumentos y da error al querer acceder a la posición uno del array.
Generemos el jar ejecutable para ConsoleParameters y ejecutemos java -jar console.jar edu. Esto envía "edu" como argumento que será recibido como parámetro en la primer pocision de args. Si todo sale bien se debería ver: