5

我正在尝试获取 java 上的默认 Program Files 文件夹。当我使用:

 System.getenv("ProgramFiles")

它返回“C:\Program Files”而不是“C:\Program Files (x86)”

我可以手动添加 +(x86) 但如果用户使用 32 位系统,它将是错误的文件夹。

4

3 回答 3

9

你应该使用

System.getenv("ProgramFiles(X86)")

您可以在Wikipedia上找到完整的参考资料。

于 2012-08-21T14:51:28.303 回答
2

这是 32 位 Program Files 目录的正确答案

System.getenv("ProgramFiles(X86)")

但是,如果程序员正在寻找 64 位 Program Files 文件夹但运行 32 位 JVM,则 System.getenv("ProgramFiles") 将返回 "\Program Files (x86)\" 作为 32 位兼容性的副作用. 在某些情况下,程序员仍然需要 64 位 ProgramFiles 目录。此解决方案有其缺陷,但通常会工作......

System.getenv("ProgramFiles").replace(" (x86)", "")

那只是稍微好一点

System.getenv("SystemDrive") + "\Program Files"    

-特雷斯

于 2015-03-17T04:27:29.000 回答
-2

可能是一试身手。

try {
  System.getenv("ProgramFiles(X86)");
}
catch (Exception e) {
  System.getenv("ProgramFiles");
}

也许例外可能更具体,但一般的想法。

于 2012-08-21T15:01:15.560 回答