Есть ли способ передать список значений в Java, используя только одно системное свойство?
Я думаю о чем-то по строкам -DMY_LIST=val1,val2,val3
или -DMY_LIST={val1, val2}
Есть идеи?
Как получить доступ к этому в Java?
Обновление: сначала я попросил переменные среды, но на самом деле имел в виду системные свойства. Подобный принцип, но совсем другой... Я изменил название и текст соответственно сейчас. Спасибо, @serge-ballesta
Из учебника Oracle Javase На платформе Java приложение использует System.getenv для извлечения значений переменных среды. Без аргумента getenv возвращает экземпляр java.util.Map, доступный только для чтения, где ключи карты являются именами переменных среды, а значениями карты являются значения переменных среды.
Поэтому, если у вас есть переменная среды MY_LIST=val1,val2,val3
, вы можете использовать ее так же просто, как
String strlist = System.getenv().get("MY_LIST");
List<String> list = Arrays.asList(strlist.split(","));
Изменение: фиксированный вызов getenv (забытые скобки - благодаря христианину)
Я должен уточнить, что мой anwer относится к переменной окружения, которая является названием сообщения. Но java -D MY_LIST=a,b,c...
устанавливает свойства системы, и это не то же самое. Чтобы получить доступ к свойствам системы, заданным -D
, я должен написать вместо этого:
String strlist = System.getProperty("MY_LIST");
List<String> list = Arrays.asList(strlist.split(","));
strlist
и просто должен пропустить их.
split(",")
ее.