在使用J2SE 1.4时,在Windows中获取环境变量的值的最佳/最简单的方法是什么?在Java 1.4中访问Windows系统变量
2
A
回答
1
你绝对没有办法直接从java API访问环境变量。只有这样,才能实现与的Runtime.exec这样的代码:
Process p = null;
Runtime r = Runtime.getRuntime();
String OS = System.getProperty("os.name").toLowerCase();
// System.out.println(OS);
if (OS.indexOf("windows 9") > -1) {
p = r.exec("command.com /c set");
}
else if ((OS.indexOf("nt") > -1)
|| (OS.indexOf("windows 2000") > -1)
|| (OS.indexOf("windows xp") > -1)) {
// thanks to JuanFran for the xp fix!
p = r.exec("cmd.exe /c set");
}
虽然你可以访问感谢System.getProperties的Java变量(); 但你只会得到一些ENV变量由JVM本身映射,以及额外的数据,你可以提供关于java命令行用“-Dkey =价值”
欲了解更多信息,请参阅http://www.rgagnon.com/javadetails/java-0150.html
1
将它们传递到JVM中-D系统属性,例如:
java -D<java var>=%<environment var>%
这样你就不会被绑定到特定的操作系统。
4
有一个切换到JVM为此。从here:
Start the JVM with the "-D" switch to pass properties to the application and read them with the System.getProperty() method.
SET myvar=Hello world
SET myothervar=nothing
java -Dmyvar="%myvar%" -Dmyothervar="%myothervar%" myClass
then in myClass
String myvar = System.getProperty("myvar");
String myothervar = System.getProperty("myothervar");
7
您可以用getenv()获取环境变量:
String variable = System.getenv("WINDIR");
System.out.println(variable);
相信GETENV()函数在某一时刻被弃用,但然后在java 1.5中“undeprecated”
ETA:
我现在看到的问题是专门针对java 1.4的,所以这对您不起作用(或者至少您可能会以弃用警告结束)。我会在这里留下答案,以防其他人绊倒这个问题并使用更高版本。
0
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n", envName, env.get(envName));
}
0
阿帕奇百科全书Exec用“org.apache.commons.exec.environment.EnvironmentUtils”提供了一种方式来获得对环境变量JDK事先1.5:
(String) EnvironmentUtils.getProcEnvironment().get("SOME_ENV_VAR")
相关问题
- 1. 访问系统变量
- 2. 用Java设置Windows系统变量
- 3. Java ProcessBuilder和Windows系统变量
- 4. 如何从Java程序内部访问系统变量?
- 5. 访问Windows Azure中的文件系统
- 6. 访问多线程系统中的静态变量
- 7. Java系统环境变量
- 8. 在AIR中访问系统环境变量?
- 9. 在bash脚本中访问系统范围的环境变量
- 10. Java访问变量
- 11. Java:易变变量访问
- 12. Windows本地文件系统访问API
- 13. LiveCode:访问Windows系统菜单
- 14. 使用teamviewer从Windows访问Linux系统?
- 15. SSIS - 如何访问脚本任务中的系统变量
- 16. Windows的默认PATH系统变量?
- 17. 如何在strings.xml中访问java变量
- 18. 在java中访问继承类变量
- 19. 在Java中访问shell环境变量
- 20. 在java中访问javascript变量
- 21. 在Java中访问Javasrcipt变量base_url
- 22. 如何在Java中访问Perl变量?
- 23. JavaFX 2 - 访问Windows系统麦克风音量
- 24. java访问客户端文件系统
- 25. java facebook api聊天系统访问
- 26. 访问/系统在Android
- 27. 访问android系统
- 28. 如何在Windows上访问$ PWD变量?
- 29. Log4j - 在Windows上访问环境变量
- 30. 访问系统属性
这是有帮助的..我只是使用echo%env_variable_name%直接获取值,而不必分析SET的输出。 – 2009-06-29 09:39:28
我没有学习Java来将命令输入cmd =/ – 2012-05-11 01:03:30