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

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


jar
person Community    schedule 19.01.2009    source источник


Ответы (5)


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

java -jar myjar.jar one two

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

String one = args[0];  
String two = args[1];  
person Reji    schedule 19.01.2009

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

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

и

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

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

person Xn0vv3r    schedule 19.01.2009
comment
Эта ссылка мертва. - person bfontaine; 25.01.2018
comment
Вот рабочая ссылка, показывающая использование утилиты jar Java - docs.oracle.com/javase /учебник/развертывание/jar. Ваше здоровье! - person realPK; 07.05.2019

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

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
person Community    schedule 23.06.2012
comment
Вы никогда не должны использовать исключения для управления своим кодом. Вместо этого вы должны проверить длину массива перед доступом к нему! - person chuck258; 30.09.2015
comment
Что ж, если программа ВСЕГДА должна иметь один или несколько параметров, отсутствие ИМХО является законным случаем для использования исключения. - person MikeW; 06.11.2018

java [ options ] -jar file.jar [ argument ... ]

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

-Dlog4j.configurationFile=directory/file.xml


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

Если в аргументах есть пробелы, вы можете пройти, как показано ниже.

java -jar myjar.jar 'first argument' 'second argument'
person SuperNova    schedule 28.09.2020