Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jar中的库文件_Java_Eclipse_Sigar - Fatal编程技术网

Java 使用jar中的库文件

Java 使用jar中的库文件,java,eclipse,sigar,Java,Eclipse,Sigar,这是一个后续行动 我尝试做的: 我有一个eclipse项目,它使用th Sigar库来获取cpu信息(以及其他信息)。为了做到这一点,Sigar需要一个库文件来工作。每个CPU/O都有一个不同的文件,所有这些文件都是可用的。我必须将其打包到一个jar中,其他CPU/O可以将我的应用程序用作库 我所做的: 将可用的库文件添加到我的项目中,并可以像这样访问它们 System.setProperty("org.hyperic.sigar.path",System.class.getResource("

这是一个后续行动

我尝试做的:
我有一个eclipse项目,它使用th Sigar库来获取cpu信息(以及其他信息)。为了做到这一点,Sigar需要一个库文件来工作。每个CPU/O都有一个不同的文件,所有这些文件都是可用的。我必须将其打包到一个jar中,其他CPU/O可以将我的应用程序用作库

我所做的:
将可用的库文件添加到我的项目中,并可以像这样访问它们

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());
如果我将应用程序作为一个独立的应用程序运行,这两种方法似乎都有效。 当我将它打包到一个jar中并尝试从其他项目运行它时,它就是不起作用。我无法查看目录或文件。
这是我的项目结构

我试图用我能想到的任何路径访问该文件,但都返回了NullPointerException


我该怎么做?使用临时文件?我不知道该怎么做,我想加载整个文件夹,而不是一个文件,因为我不知道客户端应用程序的硬件/操作系统。

为什么不尝试使用它使处理库和构建库变得更容易。Maven如何解决我的问题?你能详细说明一下吗?你知道maven是什么吗?如果没有,我将发布一个更详细的答案,但简而言之,它通常允许您自动导入外部依赖项(JAR),并以干净的方式将它们构建到您的应用程序中。您当前手动将jar放入项目的方式通常是一个坏主意,可能会使开发更具挑战性。我知道Maven是什么,但问题不在于jar。除了从jar,我需要导入一个装满库文件的文件夹,
.so
文件,如所附图像底部所示。这些文件我想访问,但我无法访问。问题似乎是,当我jar项目时,树结构发生了变化。这些文件必须在
java
目录中吗?通常像这样的文件可能会进入
resources
目录?因此,您的
elod.tool.msn
将位于
src/main/java
中,
lib
将位于
src/main/resources
中。一旦这些文件位于资源目录中,您就可以非常轻松地访问它们。例如使用