Как передать параметры в файл jar во время выполнения?

101

Как передать параметры в файл JAR во время выполнения?

нвинклер
источник

Ответы:

145

Чтобы передать аргументы банке:

java -jar myjar.jar one two

Вы можете получить к ним доступ в методе main () класса «Main-Class» (упомянутом в manifest.mfфайле JAR).

String one = args[0];  
String two = args[1];  
Реджи
источник
40

В документации JAVA говорится :

java [параметры] -jar file.jar [аргумент ...]

и

... Неопциональные аргументы после имени класса или имени файла JAR передаются в основную функцию ...

Может быть, вам придется заключить аргументы в одинарные кавычки.

Xn0vv3r
источник
7
Эта ссылка мертва.
bfontaine
1
Вот рабочая ссылка, показывающая использование утилиты jar Java - docs.oracle.com/javase/tutorial/deployment/jar . Ура!
realPK
15

Вы можете сделать это примерно так, поэтому, если аргументы не указаны, он все равно продолжится:

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

    }
}

А затем запустите приложение:

java -jar myapp.jar arg1 arg2
закуски
источник
21
Вы никогда не должны использовать исключения для управления своим кодом. Вместо этого вы должны проверить длину массива, прежде чем обращаться к нему!
chuck258
1
Что ж, если программа должна ВСЕГДА иметь один или несколько параметров, отсутствие их - ИМХО, законный случай использования исключения.
MikeW
6
java [ options ] -jar file.jar [ argument ... ]

если вам нужно передать файл свойств log4j, используйте опцию ниже

-Dlog4j.configurationFile=directory/file.xml


java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
Бачан Джозеф
источник