【发布时间】:2014-12-03 15:43:50
【问题描述】:
1st,对不起我的英语,我是法国人,但我认为这是解决我问题的最佳网站!
我正在尝试将两个 dll 放入我的 jar 中:sigar-amd64-winnt.dll 和 sigar-x86-winnt.dll
这是一个 Maven 项目,目标是为一个更大的项目制作一个小程序,所以我不能把它放在系统或用户文件夹中。
DLL 位于 jar 的根目录中,因此我可以使用此解决方案提取和加载它们:https://stackoverflow.com/a/4691879/4261971
(它们被提取到 java temp 文件夹中)。
我使用System.setProperty("java.library.path", System.getProperty("java.library.path") + MyLibDirectory) 函数来引用java.library.path 中的dll,它的工作!如果我使用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;
}
小程序的最终目的是直接从全局 Web 应用程序检查用户计算机并生成日志。
Maven pom.xml 中用于包含 dll 的部分:
<build>
<resources>
<resource>
<directory>libs</directory>
<includes>
<include>sigar-amd64-winnt.dll</include>
<include>sigar-x86-winnt.dll</include>
</includes>
</resource>
</resources>
我在这个问题上工作了三个工作日,此时我不明白我的错误,所以如果你能帮助我,我会爱你一辈子! (笑)
如果您想了解更多信息,请询问!
【问题讨论】: