如何理解我们在哪个操作系统?

时间:2013-01-18 14:27:26

标签: java operating-system jnotify

我正在使用JNotify api在计算机中听一些路径。但是由于观看文件系统是一个相对较低级别的事情,它使用不同的库用于不同的操作系统,例如linux,mac或windows。和32,64位也有所不同。我的问题是如何选择使用哪个库。当我将所有这些添加到构建路径时,它会导致错误。我需要一些配置我想但我不知道如何:/任何帮助将不胜感激。 顺便说一句我在eclipse上使用java。

4 个答案:

答案 0 :(得分:0)

System.getProperty("os.name");

答案 1 :(得分:0)

如果您使用Maven,您可以为每个目标创建一个配置文件,并为每个目标操作系统构建一个特定的.jar文件。

尝试为每个平台创建单个二进制文件是一件复杂的事情。我将分别为每个目标操作系统创建一个分发版,以避免使应用程序复杂化。

答案 2 :(得分:0)

您可以使用os.arch / os.name系统属性找出正在运行的平台。有关详细信息,请参阅this answer类似问题。

至于加载正确的库,您可以将每个特定于平台的类打包到它们自己的jar中并动态加载它们。有关此示例,请参阅this question

答案 3 :(得分:0)

您可以使用系统级属性,例如os.archos.nameos.version,例如:

String architecture = System.getProperty("os.arch");
String os = System.getProperty("os.name");

在我的机器上,它分别返回“amd64”和“Windows 7”。您还可以知道file.separator系统属性,知道在Linux和Mac上它应该返回正斜杠(“/”),在Windows上它应该返回反斜杠(“\”)/