我正在使用JNotify api在计算机中听一些路径。但是由于观看文件系统是一个相对较低级别的事情,它使用不同的库用于不同的操作系统,例如linux,mac或windows。和32,64位也有所不同。我的问题是如何选择使用哪个库。当我将所有这些添加到构建路径时,它会导致错误。我需要一些配置我想但我不知道如何:/任何帮助将不胜感激。 顺便说一句我在eclipse上使用java。
答案 0 :(得分:0)
System.getProperty("os.name");
答案 1 :(得分:0)
如果您使用Maven,您可以为每个目标创建一个配置文件,并为每个目标操作系统构建一个特定的.jar文件。
尝试为每个平台创建单个二进制文件是一件复杂的事情。我将分别为每个目标操作系统创建一个分发版,以避免使应用程序复杂化。
答案 2 :(得分:0)
您可以使用os.arch / os.name系统属性找出正在运行的平台。有关详细信息,请参阅this answer类似问题。
至于加载正确的库,您可以将每个特定于平台的类打包到它们自己的jar中并动态加载它们。有关此示例,请参阅this question。
答案 3 :(得分:0)
您可以使用系统级属性,例如os.arch
,os.name
和os.version
,例如:
String architecture = System.getProperty("os.arch");
String os = System.getProperty("os.name");
在我的机器上,它分别返回“amd64”和“Windows 7”。您还可以知道file.separator
系统属性,知道在Linux和Mac上它应该返回正斜杠(“/”),在Windows上它应该返回反斜杠(“\”)/