Установка нескольких системных свойств командная строка Java



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



пытаясь избежать этого:



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


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

768   5  

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

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

не было документация что упоминает о чем-то подобном.

вот цитата:

-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 окружающая среда переменная.

screenshot showing use of JAVA_TOOL_OPTIONS environment variable

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

Comments

    Ничего не найдено.