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

Exportar a archivo JAR ejecutable

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

Entrada por la consola en Java

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:

Parametros por consola