有没有办法只使用一个系统属性将值列表传递给 Java?
我正在考虑类似 -DMY_LIST=val1,val2,val3
或 -DMY_LIST={val1, val2}
有什么想法吗?
我如何在 Java 中访问它?
更新:我最初要求提供环境变量,但实际上是指系统属性。相似的原理,但完全不同......我现在相应地更改了标题和文本。谢谢,@serge-ballesta
最佳答案
来自 Oracle Javase tutorial 在 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 的调用(忘记了括号 - 感谢 Christian)
我必须明确指出,我的回答涉及环境变量,这是帖子的标题。但是 java -D MY_LIST=a,b,c ...
设置系统属性并且它不相同。
要访问由 -D
选项设置的系统属性,我应该改为:
String strlist = System.getProperty("MY_LIST");
List<String> list = Arrays.asList(strlist.split(","));
关于java - 如何通过系统属性将数组或值列表传递给 Java,以及如何访问它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23951410/