首先,对不起我的英语,我是法国人,但我认为这是最好的网站来回答我的问题!
我正在尝试将两个dll放入我的jar中: sigar-amd64-winnt.dll和sigar-x86-winnt.dll
这是一个Maven项目,目标是为一个更大的项目制作一个applet,所以我不能把它放在系统或用户文件夹中。
DLL位于jar的根目录中,因此我可以使用以下解决方案解压缩并加载它们:https://stackoverflow.com/a/4691879/4261971 (它们解压缩在java temp文件夹中)。我使用System.setProperty("java.library.path", System.getProperty("java.library.path") + MyLibDirectory)函数来引用java.library.path中的动态链接库,并且它成功了!如果我使用System.getProperty("java.library.path"),我可以看到它。
但是错误总是一样的:
no sigar-x86-winnt.dll in java.library.path at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172) etc...
调用sigar库的函数(简化):
public String getfileVersion(String fileDir) {
String version = "";
if ((!fileDir.isEmpty()) && (!"".equals(fileDir))) {
FileVersion info = Win32.getFileVersion(fileDir);
version = info.getFileVersion();
}
return version;
}applet的最终功能是直接从全局web应用程序检查用户计算机并生成日志。
Maven pom.xml中包含dlls的部分:
<build>
<resources>
<resource>
<directory>libs</directory>
<includes>
<include>sigar-amd64-winnt.dll</include>
<include>sigar-x86-winnt.dll</include>
</includes>
</resource>
</resources>
我在这个问题上工作了三个工作日,现在我不明白我的错误,所以如果你能帮助我,我会爱你一生!(lol)
如果你想要更多的信息,尽管问吧!
发布于 2017-09-05 17:20:26
System.setProperty("java.library.path",System.getProperty("java.library.path") + System.getProperty("path.separator")+ MyLibDirectory);或System.setProperty("org.hyperic.sigar.path",MyLibDirectory);
https://stackoverflow.com/questions/27275808
复制相似问题