2012-06-29 57 views
5

嗨即時通訊使用第三方lib名稱Hyperic Sigar。當我運行我的代碼,它顯示錯誤,Hyperic Sigar Mac Osx錯誤 - 沒有庫

這是我的代碼:

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雪豹發展開發人員 被發現一些舊帖子("no sigar-x86-winnt.dll in java.library.path" error when using Hyperic SIGAR on multi language OS) 該帖子說,我需要添加一些路徑,如果是這樣的話......我如何在Mac Osx中添加該路徑? 希望有人可以幫助^^

回答

3

首先你需要添加Sigar.jar到你的庫,然後添加.dylib文件到你的庫(你需要爲你的操作系統選擇你正在使用的文件)。在你的情況下,你應該添加libsigar-universal64-macosx.dylib,你可以在"hyperic-sigar-1.6.4/sigar-bin/lib"找到這些文件。

2

我得到了解決方案, 解決方案是添加一個jar文件(在我的情況下)到我的項目。 每當我們使用第三方庫(如java的mysql驅動程序)時,它的概念是相同的。 所以在我的情況下, 我需要添加log4j.jar和sigar.jar到我的路徑。

右鍵單擊您的eclipse項目,然後轉至 構建路徑>配置構建路徑> Java構建路徑>添加外部JAR 並將sigar.jar添加到您的項目中。

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" 
相關問題