谁能帮助我如何从环境变量中获取值?
String[] extensions = {"xml", "java", "dat"};
目前我正在传递 xml、java 和 dat 文件。现在我想从环境变量中获取这些值。
我试过这个:
String[] extensions = {System.getenv("LIST")};
但我每次都得到空值。
谁能帮助我如何从环境变量中获取值?
String[] extensions = {"xml", "java", "dat"};
目前我正在传递 xml、java 和 dat 文件。现在我想从环境变量中获取这些值。
我试过这个:
String[] extensions = {System.getenv("LIST")};
但我每次都得到空值。
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.
}
对于PATH
和CLASSPATH
变量,您需要发现它们的常规分隔符。
小路
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");
Java 要获取环境变量,必须有一个环境变量才能获取。由于它们来自环境,因此 设置环境变量的方式取决于环境(操作系统)。
您没有指明您使用的是哪个操作系统。exec
如果环境是启动 JVM的 POSIX ,exec
则可以为其中一个函数指定一组环境值。
对于 Unix shell,您可以在执行 JVM 的语句中设置值:
NAME=value java ...
或者在执行 JVM 之前将它们导出到 shell 脚本中:
NAME=value
export NAME
java ...
为单个环境变量返回的值将始终是一个字符串。在您的情况下,字符串可能如下所示:“xml:java:dat”。一旦您检索到此值(尝试System.getenv("DESIRED_ENVIRONMENT_VARIABLE_NAME_HERE")
),您将需要将其解析为单独的值。尝试使用 String.split 方法(也许stringVariableName.split(":")
)。
拆分后,您将拥有字符串数组中的值(例如:)String[] values
。