Jak przekazać parametry do pliku jar w czasie wykonywania?

101

Jak przekazać parametry do pliku JAR w czasie wykonywania?

nwinkler
źródło

Odpowiedzi:

145

Aby przekazać argumenty do jar:

java -jar myjar.jar one two

Możesz uzyskać do nich dostęp za pomocą metody main () klasy „Main-Class” (wspomnianej w manifest.mfpliku JAR).

String one = args[0];  
String two = args[1];  
Reji
źródło
40

Dokumentacja JAVA mówi :

java [opcje] -jar plik.jar [argument ...]

i

... Argumenty niebędące opcjami po nazwie klasy lub nazwie pliku JAR są przekazywane do funkcji głównej ...

Może musisz umieścić argumenty w pojedynczych cudzysłowach.

Xn0vv3r
źródło
7
Ten link jest martwy.
bfontaine
1
Oto działające łącze pokazujące użycie narzędzia jar Javy - docs.oracle.com/javase/tutorial/deployment/jar . Twoje zdrowie!
realPK
15

Możesz to zrobić za pomocą czegoś takiego, więc jeśli nie zostaną określone żadne argumenty, i tak będzie kontynuowane:

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

    }
}

A następnie uruchom aplikację:

java -jar myapp.jar arg1 arg2
przekąski
źródło
21
Nigdy nie powinieneś używać wyjątków do sterowania kodem. Zamiast tego powinieneś sprawdzić długość tablicy przed jej uzyskaniem!
chuck258
1
Cóż, jeśli program musi ZAWSZE mieć jeden lub więcej parametrów, brak ich jest IMHO uzasadnionym przypadkiem użycia wyjątku.
MikeW
6
java [ options ] -jar file.jar [ argument ... ]

jeśli chcesz przekazać plik właściwości log4j, użyj poniższej opcji

-Dlog4j.configurationFile=directory/file.xml


java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
Bachan Joseph
źródło