Wie übergebe ich Parameter zum Zeitpunkt der Ausführung an eine JAR-Datei?

101

Wie übergebe ich Parameter zum Zeitpunkt der Ausführung an eine JAR-Datei?

nwinkler
quelle

Antworten:

144

So übergeben Sie Argumente an das Glas:

java -jar myjar.jar one two

Sie können mit der main () -Methode von "Main-Class" (in der manifest.mfDatei einer JAR erwähnt) darauf zugreifen .

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

In der JAVA-Dokumentation heißt es :

java [Optionen] -jar file.jar [Argument ...]

und

... Nicht-Optionsargumente nach dem Klassennamen oder dem JAR-Dateinamen werden an die Hauptfunktion übergeben ...

Vielleicht müssen Sie die Argumente in einfache Anführungszeichen setzen.

Xn0vv3r
quelle
7
Dieser Link ist tot.
Bfontaine
1
Hier ist ein funktionierender Link, der die Verwendung des JAR-Dienstprogramms jar zeigt - docs.oracle.com/javase/tutorial/deployment/jar . Prost!
RealPK
15

Sie können dies mit so etwas tun. Wenn also keine Argumente angegeben sind, wird es trotzdem fortgesetzt:

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

    }
}

Und dann starten Sie die Anwendung:

java -jar myapp.jar arg1 arg2
Snacks
quelle
21
Sie sollten niemals Ausnahmen verwenden, um Ihren Code zu steuern. Stattdessen sollten Sie die Länge des Arrays überprüfen, bevor Sie darauf zugreifen!
Chuck258
Nun, wenn das Programm IMMER einen oder mehrere Parameter haben muss, ist IMHO meiner Meinung nach ein legitimer Fall für die Verwendung einer Ausnahme.
MikeW
6
java [ options ] -jar file.jar [ argument ... ]

Wenn Sie die Eigenschaftendatei log4j übergeben müssen, verwenden Sie die folgende Option

-Dlog4j.configurationFile=directory/file.xml


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