2011-01-11 13 views
2

Java 및 OpenCL을 사용하는 프로그램을 설정하려고합니다. 나는 이것을 위해 JOCL의 바인딩을 사용하고있다.java.lang.UnsatisfiedLinkError, 해결할 수 없습니다

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

: 여기
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에 설정됩니다 : 나는 개미에서 빌드 할 때 여기에 내가 오류입니다

왜이 문제가 있는지 이해할 수 없습니다. 나는이 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

+0

라이브러리를로드하기 전에'System.getProperty ("java.library.path")'를 출력하면 무엇이 표시됩니까? – gabuzo

+0

내 응용 프로그램 내에서 디렉토리가 예상치 못한 것을 얻습니다. 필자가 모르는 일부 코드 또는 일부 프로젝트 설정은 아마도 다음과 같이 설정할 수 있습니다. java.library.path :/home//Desktop/bp-trunk/app/BlueprintCore/nativelib – smuggledPancakes

답변

3

LD_LIBRARY_PATH와 java.library.path는 유사하지만 동일하지 않습니다. 명령 행에서 -Djava.library.path를 라이브러리가있는 위치로 설정하십시오.

또는로드하기 직전의 System.out.println (System.getProperty ("java.library.path")) 라이브러리 - 경로가 무엇인지 생각해보십시오.

+0

시스템을 제안 해 주셔서 감사합니다. out.println (System.getProperty ("java.library.path")). 내 응용 프로그램이 다른 위치에서 내 기본 라이브러리를 찾고 있다는 것을 알지 못했습니다. 이제 오류가 사라졌습니다! 다시 한 번 감사드립니다 :) – smuggledPancakes

+0

문제 없습니다 - BTW - LD_LIBRARY_PATH와 java.library.path의 차이점은 Java가로드하는 라이브러리에 차례대로로드해야하는 일부 종속 라이브러리가있을 때 가장 분명합니다. java.library.path는 아무 효과가 없습니다. 명시 적 위치에서 직접 손으로 라이브러리를로드 할 수 있다는 것을 기억하십시오. (더 복잡한 사용 사례에 가장 적합합니다.) – time4tea

+1

사소한 일을 용서해주십시오.하지만 누군가가 문제를 정확히 해결 한 방법을 설명 할 수 있습니까? java.library.path가 작동하도록하려면? JOCL에는 JAR 파일 만 포함되어 있는데,이 라이브러리는 어딘가 깊은 곳에서 이러한 라이브러리를 포함하고있을 것입니다. – user1111929

관련 문제