windows 64位程序文件文件夹的Java路径



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

 System.getenv("ProgramFiles")

它返回"C:\Program Files"而不是"C:\Program File(x86)"

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

您应该使用

System.getenv("ProgramFiles(X86)")

你可以在维基百科上找到完整的参考资料。

这是32位程序文件目录的正确答案

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"    

-Tres

可能是一次尝试和捕获。

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

也许"例外"可以更具体,但这是一个普遍的想法。

最新更新