【发布时间】:2018-01-22 14:14:52
【问题描述】:
我尝试检索我的操作系统的 windows 目录。 为了获得正确的路径,我尝试了以下 2 个命令:
System.getenv().get("WINDIR")
System.getenv().get("SystemRoot")
两个命令都有效,但奇怪的是,第一个命令 (WINDIR) 只返回路径,如果我 在调试模式下运行程序。仅当我在调试模式下运行程序 not 时,后一个命令 (SystemRoot) 才会返回路径。
所以这个程序
public static void main(String[] args) {
System.out.println(System.getenv().get("WINDIR"));
System.out.println(System.getenv().get("SystemRoot"));
}
评估为
// Debug mode
C:\Windows
null
// No Debug mode
null
C:\Windows
这是一种已定义的行为吗?
(我的应用程序是特定于 Windows 的,如果我说的是调试模式,我指的是默认的 Eclipse“调试为 Java 应用程序”运行配置)
【问题讨论】:
-
不完全。我在这两种情况下都从 Eclipse 运行程序。所以无论我是否运行调试模式,环境都是一样的。