Установка нескольких системных свойств командная строка Java
есть ли более простой способ указать несколько системных свойств в командной строке для программы Java, а не иметь несколько операторов-D?
пытаясь избежать этого:
java -jar -DNAME="myName" -DVERSION="1.0" -DLOCATION="home" program.jar
Я думал, что видел пример того, как кто-то использует один -D и некоторые цитировали строки после этого, но я не могу найти пример.
5 ответов:
ответа нет. Возможно, вы видели пример, когда кто-то установил бы что-то вроде :
-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
не было документация что упоминает о чем-то подобном.
вот цитата:
-Dproperty=значение Установите значение системного свойства. Если значение-это строка, которая содержит пробелы, необходимо заключить строку в двойные кавычки:
java-Dfoo=" some string " SomeClass
вы можете использовать
JAVA_TOOL_OPTIONSпеременная окружения для установки параметров. Он работал для меня с Rasbian. Смотрите Переменные среды и свойства системы который имеет это сказать:этот использование переменных среды может быть отключено по соображениям безопасности.во многих средах, командная строка не доступна для запустите приложение с необходимыми параметрами командной строки.
это часто происходит с приложениями, которые используют встроенные виртуальные машины (что означает они используют собственный интерфейс Java (JNI) Вызов API для запуска VM), или где запуск глубоко вложен в Скрипты. В этих условиях окружающей среды JAVA_TOOL_OPTIONS переменная может быть полезным чтобы увеличить командную строку.
когда эта переменная окружения установлена, функция JNI_CreateJavaVM (в API вызова JNI) функция JNI_CreateJavaVM добавляет значение переменной среды для параметров, указанных в ее Аргумент JavaVMInitArgs.
в некоторых случаях этот параметр отключен по соображениям безопасности. Для например, в операционной системе Oracle Solaris этот параметр отключено, если действительный идентификатор пользователя или группы отличается от реального идентификатора.
см. этот пример, показывающий разницу между указанием в командной строке и использованием
JAVA_TOOL_OPTIONSокружающая среда переменная.
Если необходимые свойства необходимо установить в системе, то нет опции, чем -D Но если вам нужны эти свойства при загрузке приложения, то загрузка свойств через файлы proerties является лучшим вариантом. Это не потребует изменения сборки для одного свойства.

Comments