在 Java 1.4 中访问 Windows 系统变量
使用 J2SE 1.4 时获取 Windows 中环境变量值的最佳/万无一失的方法是什么?
What is the best/foolproof way to get the values of environment variables in Windows when using J2SE 1.4 ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用 getEnv() 获取环境变量:
我相信 getEnv() 函数在某个时候已被弃用,但后来在 java 1.5
ETA 中“不推荐”:
我现在看到问题专门指 java 1.4,所以这不会为您工作(或者至少您最终可能会收到弃用警告)。 我会将答案留在这里,以防其他人偶然发现这个问题并使用更高版本。
You can use getEnv() to get environment variables:
I believe the getEnv() function was deprecated at some point but then "undeprecated" later in java 1.5
ETA:
I see the question now refers specifically to java 1.4, so this wouldn't work for you (or at least you might end up with a deprecation warning). I'll leave the answer here though in case someone else stumbles across this question and is using a later version.
为此需要切换到 JVM。 来自此处:
There's a switch to the JVM for this. From here:
你绝对没有办法直接从 java API 访问环境变量。 使用 Runtime.exec 使用这样的代码实现这一点的唯一方法:
尽管您可以通过 System.getProperties() 访问 Java 变量;
但是您只能获得 JVM 本身映射的一些环境变量,以及可以在 java 命令行上使用“-Dkey=value”提供的其他数据。
有关详细信息,请参阅 http://www.rgagnon.com/javadetails/java-0150.html
You have definitely no way to access environment variables straigthly from java API. The only way to achieve that with Runtime.exec with such a code :
Although you can access Java variables thanks to System.getProperties();
But you would only get some env variables mapped by JVM itself, and additional data you could provide on java command line with "-Dkey=value"
For more information see http://www.rgagnon.com/javadetails/java-0150.html
将它们作为 -D 系统属性传递到 JVM,例如:
这样您就不会与特定操作系统绑定。
Pass them into the JVM as -D system properties, for example:
That way you don't become tied to a particular OS.
Apache Commons Exec 提供了“org.apache.commons.exec.environment.EnvironmentUtils”来获取 JDK 1.5 之前的环境变量:
Apache Commons Exec provides with "org.apache.commons.exec.environment.EnvironmentUtils" a way to get the environment variables on JDK's prior 1.5: