Задайте несколько свойств системы. Командная строка Java.
Есть ли более простой способ указать несколько свойств системы в командной строке для Java-программы вместо того, чтобы иметь несколько операторов -D?
Попытка избежать этого:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
Мне показалось, что я видел пример того, кто использовал одну -D
и некоторую строку с цитированием, но я больше не могу найти этот пример.
Ответы
Ответ 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 является лучшим вариантом. Это не потребует изменения сборки для одного свойства.