1

谁能帮助我如何从环境变量中获取值?

String[] extensions = {"xml", "java", "dat"};

目前我正在传递 xml、java 和 dat 文件。现在我想从环境变量中获取这些值。

我试过这个:

String[] extensions = {System.getenv("LIST")};

但我每次都得到空值。

4

4 回答 4

3

System.getenv()将返回一个地图。从那里您可以迭代地图并放入一个数组中。

Map<String, String> env = System.getenv();
// allocate an array with env.size()
for (String envName : env.keySet()) {
    // add env.get(envName) to array.
}
于 2013-06-14T16:36:07.240 回答
2

对于PATHCLASSPATH变量,您需要发现它们的常规分隔符。

小路

String path = System.getEnv("PATH");
// See http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
String[] files = path.split(System.getProperty("path.separator"));
List<String> unescapedFiles = new ArrayList<>();
for (String file: files) {
    // Exercise for the reader
    String unquotedFile = ...;
    String javaSlashedFile = ...;
    unescapedFiles.add(javaSlashedFile);
}
return unescapedFiles;

循环应该采用文件名"C:\Program Files\perl\perl.exe"并将它们转换为C:/Program Files/perl/perl.exe.

类路径

类路径有一个更可靠的替代方案。同一 Java 教程页面上还列出了系统属性“java.class.path”。这比环境变量更可靠,因为它考虑了调用和带有清单的java -cp *path*JAR 文件。Class-Path所以,换行

String path = System.getEnv("PATH");

String classPath = System.getProperty("java.class.path");
于 2013-06-14T18:03:37.317 回答
0

Java 要获取环境变量,必须有一个环境变量才能获取。由于它们来自环境,因此 设置环境变量的方式取决于环境(操作系统)。

您没有指明您使用的是哪个操作系统。exec如果环境是启动 JVM的 POSIX ,exec则可以为其中一个函数指定一组环境值。

对于 Unix shell,您可以在执行 JVM 的语句中设置值:

 NAME=value java ...

或者在执行 JVM 之前将它们导出到 shell 脚本中:

 NAME=value
 export NAME
 java ...
于 2013-06-14T18:34:59.810 回答
0

为单个环境变量返回的值将始终是一个字符串。在您的情况下,字符串可能如下所示:“xml:java:dat”。一旦您检索到此值(尝试System.getenv("DESIRED_ENVIRONMENT_VARIABLE_NAME_HERE")),您将需要将其解析为单独的值。尝试使用 String.split 方法(也许stringVariableName.split(":"))。

拆分后,您将拥有字符串数组中的值(例如:)String[] values

于 2013-06-14T16:48:12.820 回答