(这可能是一个明显的错误我正在做,但我无法得到它的6小时后现在的工作。)
我试图让使用sigar.jar在我的Eclipse项目的CPU信息(只是测试SIGAR API现在)。
它运行在Eclipse中没有问题:
- 是什么使得它在Eclipse的工作是把DLL在同一文件夹中sigar.jar
- 我测试了一下加入到DLL的路径作为构建路径配置对话框中的“本机代码财产”没有效果。
- 在运行配置添加VM参数也没有任何影响。
- 我测试了2个假的路径中的2个地方只要我在相同的文件夹sigar.jar的dll ......它在Eclipse中运行良好。
问题是,当我尝试导出一个可运行的.jar文件为我的项目。 我想两两件事:
- 我修改与捆NativeCode MANIFEST.MF文件:库/ SIGAR-AMD64-winnt.dll(我假设这里的路径是相对于项目文件夹) - >没有成功:
main starting!! no sigar-amd64-winnt.dll in java.library.path
org.hyperic.sigar.SigarException: no sigar-amd64-winnt.dll in
java.library.path
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
at CpuData.main(CpuData.java:59)
cpudata(sigar s) starting!!! cpuInfo() starting!!!
Exception in thread
"main" java.lang.UnsatisfiedLinkError:
org.hyperic.sigar.Sigar.getCpuInfoList()[Lorg/hyperic/sigar/C puInfo;
at org.hyperic.sigar.Sigar.getCpuInfoList(Native Method)
at CpuData.cpuInfo(CpuData.java:103)
at CpuData.<init>(CpuData.java:29)
at CpuData.main(CpuData.java:59)
- 然后我决定把该.dll在同一文件夹作为我project.jar,并且在命令行使用:JAVA -Djava.library.path = /天然的/ -jar C:\ cpu_usage_log \ cpu3.jar(I” M}这里假设路径是相对于包含project.jar)的文件夹......但同样没有成功:
错误:无法找到或加载主类.library.path = ..本土
(我怀疑是我应该给一个主类名之后的第二个参数的-Djava.library.path =。/路/但我不能找到所谓的“主类”名称,或做在网络上的任何实例指定这样的类...是从.dll文件中的主类?)
我真的不知道还能在这一点尝试。 我看那些2个解决方案工作了别人,这使得它更令人沮丧,因为我想象它可以明显的东西,我错过了或阅读其他职位的时候不明白,而我只是无法找到(这是我第一次处理在Java项目本机DLL)。