在Java中获取特定于操作系统的信息的最佳方法是什么?

时间:2008-08-31 22:37:33

标签: java environment-variables

  1. 专门登录Windows“.. \ Documents& Settings \ All Users,基本上任何需要根据您的软件运行的操作系统动态派生前端的路径。(现在我需要回答这个问题)
  2. 当前用户我的文档dirctory (好的,已经回答) 并且基本上任何需要根据运行软件的操作系统动态派生前端的路径。

3 个答案:

答案 0 :(得分:8)

我的文档可能最好通过访问:

来处理
System.getProperty("user.home");

System.getProperty上查找文档。

答案 1 :(得分:3)

您可以从

获取有关用户环境的任何信息
System.getProperty("...");

有关您可以获得的内容的列表,请查看here

我认为您无法以操作系统相关的方式获取所需的路径(所有用户路径)。毕竟 - 其他操作系统是否具有相同的功能?你最好的选择是检查:

System.getProperty("os.name");

查看您是否正在运行Windows,如果是,请使用“C:\ Documents& Settings \ All Users \”。

但是,只要经常使用

,你就会变得更好
System.getProperty("user.home");

(如其他人所述)整个申请。或者,允许用户指定存储您要存储的内容的目录。

答案 2 :(得分:0)

  

专门在Windows上获取“.. \ Documents& Settings \ All Users,基本上任何需要根据您的软件运行的操作系统动态派生前端的路径。(现在我需要这个答案) )

All Users dir下面的文件夹是windows中的可变目录。有关KNOWNFOLDERIDs(旧版本中CSIDL)的文档,请参阅详细信息。 因为这些值是系统相关的,所以Java不提供访问值的方法。

我认为在这个特定于Windows的文件夹中,其他操作系统通常没有等价物。另外文件夹Documents&设置\所有用户仅出现在最新的Windows版本中,并且对于例如Windows 2000或XP的处理方式有所不同。

如果您真的需要这些信息,您应该阅读microsoft文档并强制使用本机库或Runtime.exec调用的某些脚本来向您的Java应用程序提供信息。