0

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

4

4 回答 4

0
System.getProperty("os.name");
于 2013-01-18T14:29:41.747 回答
0

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

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

于 2013-01-18T14:29:49.827 回答
0

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

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

于 2013-01-18T14:31:34.023 回答
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 上它应该返回一个反斜杠 ("\")/

于 2013-01-18T14:34:01.067 回答