¿Cómo paso parámetros a un archivo jar en el momento de la ejecución?

101

¿Cómo paso parámetros a un archivo JAR en el momento de la ejecución?

nwinkler
fuente

Respuestas:

144

Para pasar argumentos al tarro:

java -jar myjar.jar one two

Puede acceder a ellos en el método main () de "Main-Class" (mencionado en el manifest.mfarchivo de un JAR).

String one = args[0];  
String two = args[1];  
Reji
fuente
40

La documentación de JAVA dice :

java [opciones] -jar archivo.jar [argumento ...]

y

... Los argumentos que no son opciones después del nombre de la clase o del archivo JAR se pasan a la función principal ...

Tal vez tengas que poner los argumentos entre comillas simples.

Xn0vv3r
fuente
7
Este vínculo está muerto.
bfontaine
1
Aquí hay un enlace de trabajo que muestra el uso de la utilidad jar de Java: docs.oracle.com/javase/tutorial/deployment/jar . ¡Salud!
realPK
15

Puede hacerlo con algo como esto, por lo que si no se especifican argumentos, continuará de todos modos:

public static void main(String[] args) {
    try {
        String one = args[0];
        String two = args[1];
    }
    catch (ArrayIndexOutOfBoundsException e){
        System.out.println("ArrayIndexOutOfBoundsException caught");
    }
    finally {

    }
}

Y luego inicie la aplicación:

java -jar myapp.jar arg1 arg2
aperitivos
fuente
21
Nunca debe usar excepciones para dirigir su código. En su lugar, debe verificar la longitud de la matriz antes de acceder a ella.
chuck258
Bueno, si el programa SIEMPRE debe tener uno o más parámetros, no tener ninguno es en mi humilde opinión un caso legítimo para usar una excepción.
MikeW
6
java [ options ] -jar file.jar [ argument ... ]

si necesita pasar el archivo de propiedades log4j, use la siguiente opción

-Dlog4j.configurationFile=directory/file.xml


java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
Bachan Joseph
fuente