Подтвердить что ты не робот

Задайте несколько свойств системы. Командная строка Java.

Есть ли более простой способ указать несколько свойств системы в командной строке для Java-программы вместо того, чтобы иметь несколько операторов -D?

Попытка избежать этого:

 java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar

Мне показалось, что я видел пример того, кто использовал одну -D и некоторую строку с цитированием, но я больше не могу найти этот пример.

4b9b3361

Ответ 1

Ответ НЕТ. Возможно, вы видели пример, когда кто-то установил бы что-то вроде:

-DArguments=a=1,b=2,c=3,d=4,e=cow

Затем приложение будет анализировать значение строки свойств Arguments для получения отдельных значений. В main вы можете получить значения ключа как (Предполагая, что формат ввода гарантирован):

String line = System.getProperty("Arguments");
if(line != null) {
  String str[] = line.split(",");
    for(int i=1;i<str.length;i++){
        String arr[] = str[i].split("=");
        System.out.println("Key = " + arr[0]);
        System.out.println("Value = " +  arr[1]);
    }
}

Кроме того, -D должен находиться перед основным классом или файлом jar в командной строке java. Пример: java -DArguments=a=1,b=2,c=3,d=4,e=cow MainClass

Ответ 2

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

Ответ 3

Ничего нет в Документация, в которой упоминается что-то подобное.

Здесь цитата:

-Dсвойство = значение     Задайте значение системного свойства. Если значение - это строка, которая содержит пробелы, вы должны заключить строку в двойные кавычки:

java -Dfoo = "некоторая строка" SomeClass

Ответ 4

Если требуемые свойства необходимо установить в системе, тогда нет возможности, кроме -D Но если вам нужны эти свойства при загрузке приложения, то загрузка свойств через файлы proerties является лучшим вариантом. Это не потребует изменения сборки для одного свойства.