您好我正在使用第三方lib名称Hyperic Sigar。当我运行我的代码时,它显示错误,
这是我的代码:
package pack;
import org.hyperic.sigar.*;
public class NetworkData {
public static void main(String[] args) {
Sigar sigar = new Sigar();
}
}
这是错误消息:
1 [main] DEBUG Sigar - no libsigar-universal64-macosx.dylib in java.library.path
org.hyperic.sigar.SigarException: no libsigar-universal64-macosx.dylib in java.library.path
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
at pack.NetworkData.main(NetworkData.java:10)
我正在使用Eclipse IDE为Java开发人员开发Mac Osx Snow Leopard 找到一些旧帖子("no sigar-x86-winnt.dll in java.library.path" error when using Hyperic SIGAR on multi language OS) 帖子说我需要添加一些路径,如果是这样的话...我如何在Mac Osx中添加该路径? 希望有人可以帮助^^
答案 0 :(得分:3)
首先您需要将Sigar.jar
添加到库中,然后将.dylib文件添加到您的库中(您需要为您的操作系统选择正在使用的文件)。在您的情况下,您应添加libsigar-universal64-macosx.dylib
,您可以在"hyperic-sigar-1.6.4/sigar-bin/lib"
中找到这些文件。
答案 1 :(得分:2)
我得到了解决方案, 解决方案是在我的项目中添加一个jar文件(在我的例子中)。 每当我们使用第三方库时都是相同的概念,例如java的mysql驱动程序。 所以在我的情况下, 我需要将log4j.jar和sigar.jar添加到我的路径中。
右键单击您的eclipse项目然后转到 构建路径&gt;配置构建路径&gt; Java构建路径&gt;添加外部JAR 并将sigar.jar添加到您的项目中。
答案 2 :(得分:2)
# to find it later because you will need it ...
cd ~/Downloads/
# or whatever the latest one at the time of reading is ...
curl https://netix.dl.sourceforge.net/project/sigar/sigar/1.6/hyperic-sigar-1.6.4.zip
# unpack the package to the tmp dir
sudo unzip -o /Users/phz/Downloads/hyperic-sigar-1.6.4.zip -d /tmp/
# copy the libsigar-universal64-macosx.dylib to your class path dir
sudo find /tmp/ -name libsigar-universal64-macosx.dylib \
-exec cp -v {} /Library/Java/Extensions/ \;
# this cmd might be obsolete ...
# copy the sigar.jar to your class path dir
sudo find /tmp/ -name sigar*.jar \
-exec cp -v {} /Library/Java/Extensions/ \;
# set you classpath dir, or add in ~/.bash_profile
# or even better https://github.com/YordanGeorgiev/ysg-confs
export CLASSPATH=$CLASSPATH:/Library/Java/Extensions
# you should not see the error anymore
cd $my_proj_dir ; sbt compile
# neither here ..
cd $my_project_dir ; clear ; sbt "test:testOnly *testClass"