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

Chr*_*ian 1 java arrays list environment-variables

有没有办法只使用一个系统属性将值列表传递给Java?

我沿着直线思维的东西-DMY_LIST=val1,val2,val3或-DMY_LIST={val1, val2}

有任何想法吗?

我如何在Java中访问它?

更新:我最初询问环境变量,但实际上是指系统属性.类似的原则,但完全不同......我现在相应地改变了标题和文字.谢谢,@ serge-ballesta

Ser*_*sta 6

来自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(","));
Run Code Online (Sandbox Code Playgroud)

编辑:固定调用getenv(忘了括号 - 感谢Christian)

我必须确切地说我的关注环境变量是帖子的标题.但是java -D MY_LIST=a,b,c ...设置系统属性并且它们不一样.要访问由-D选项设置的系统属性,我应该写:

String strlist = System.getProperty("MY_LIST");
List<String> list = Arrays.asList(strlist.split(","));
Run Code Online (Sandbox Code Playgroud)