我正在尝试获取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");
}
也许"例外"可以更具体,但这是一个普遍的想法。