2011-01-11 130 views
2

我想安裝一個使用Java和OpenCL的程序。我正在使用JOCL的綁定。這裏是我的錯誤,當我從Ant構建:java.lang.UnsatisfiedLinkError,我無法解決它

Error while loading native library "JOCL-linux-x86_64" with base name "JOCL" 
Operating system name: Linux 
Architecture   : amd64 
Architecture bit size: 64 
Stack trace: 
java.lang.UnsatisfiedLinkError: no JOCL-linux-x86_64 in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:823) 
    ... 
    ... 

這裏是我的.bashrc設置:

export PATH=.:/bin:/usr/bin:/usr/local/bin://home/djkashta/Desktop/bp-trunk/app/BlueprintCore/scripts:/usr/java/jdk1.6.0_23/bin

export LD_LIBRARY_PATH=/usr/local/cuda/lib:/usr/local/cuda/lib64:/usr/lib:/usr/local/lib:/usr/local/cuda/computeprof/bin:/home/djkashta/Desktop/bp-trunk/bundles/CopperShark/native/linux/2.6.28/x86_64/:/usr/java:/usr/java/jdk1.6.0_23/bin/java:/usr/java/jdk1.6.0_23:/usr/java/jdk1.6.0_23/bin:/usr/lib/jvm

export LD_PRELOAD=/usr/java/jdk1.6.0_23/jre/lib/amd64/libjsig.so

export JDK_HOME=/usr/java/jdk1.6.0_23

export JAVA_HOME=/usr/java/jdk1.6.0_23 export ANT_HOME=/opt/apache-ant-1.7.1

我不明白爲什麼我有這個問題。我的Ubuntu機器上沒有這樣的設置,就像這臺RedHat機器一樣。 libJOCL-linux-x86_64.so存在於其中一個LD_LIBRARY_PATH中。如果我做的是哪個Java,我得到:/usr/java/jdk1.6.0_23/bin/java

任何想法?我被卡住了......

+1

作爲關於$ LD_LIBRARY_PATH的說明,我總是喜歡將文件添加到/etc/ld.so.conf.d,然後運行'ldconfig'。 – trojanfoe 2011-01-11 20:24:09

+0

如果您在加載庫之前打印System.getProperty(「java.library.path」),會顯示什麼內容? – gabuzo 2011-01-11 20:34:05

回答

3

LD_LIBRARY_PATH和java.library.path是不一樣的,雖然它們是相似的。在命令行中將-Djava.library.path設置爲您的庫所在的位置。

或即使 - System.out.println(System.getProperty(「java.library.path」))在加載之前該庫 - 看看它認爲的路徑...