这是对此question
的跟进我尝试做什么:
我有一个使用Sigar库的eclipse项目,以获取cpu信息(以及其他)。为了做到这一点,Sigar需要一个库文件才能工作。每个CPU / OS都有一个不同的文件,所有这些文件都可用。我必须将它打包到一个jar中,另一个可以将我的应用程序用作库。
我做了什么:
将可用的库文件添加到我的项目中,并可以像这样访问它们
System.setProperty("org.hyperic.sigar.path",System.class.getResource("/lib").getPath());
System.load(System.class.getResource(getClass().getResource(
"/lib/libsigar-amd64-linux.so").toString()).getPath());
如果我将我的应用程序作为独立应用程序运行,这两个似乎都有效。
当我将它打包到一个罐子并尝试从另一个项目运行它时,它只是不起作用。我无法看到目录或文件
这是我项目的结构
我试图用我能想到的任何路径访问该文件,但都返回了NullPointerException。
我该怎么做?使用临时文件?我不知道我应该怎么做,我想加载整个文件夹而不只是一个文件,因为我不知道客户端应用程序的硬件/操作系统。