Как передать параметры в файл 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 передаются в основную функцию ...

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


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 ...]
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.