java - 如何通过系统属性将数组或值列表传递给 Java,以及如何访问它?

标签 java arrays list environment-variables

有没有办法只使用一个系统属性将值列表传递给 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/

相关文章:

java - 如何处理 swing 中图像显示的错误文件选择

java - Android 可打包列表<String[]>

javascript在数组中发出 undefined variable

javascript - 如何将 jQuery 事件处理程序应用于多个缓存选择器?

java - kryo 列表序列化

java - 比较 ArrayList 中的列表

java - 使用java从网页中提取数据

java - java中绘制点

javascript - 检查数组中是否有相同元素,然后推送到第三个数组

r - 将列表粘贴到矢量,为每个矢量级别重复列表