두 개의 클래스가있는 이클립스 프로젝트가 있습니다.네이티브 라이브러리를 자바에 로딩하기
SomeClass1
public class SomeClass1 {
static {
System.loadLibrary("libname"); // Load the native library.
}
public native void some_method(); // implemented in the library
// .... other non methods ....
}
다른 클래스 "SomeClass2"는 "SomeClass1"의 기본 메서드를 사용하여 클래스 "SomeClass1는"네이티브 메소드가 있습니다. 마찬가지로 :
SomeClass2
public class SomeClass2{
public static void main(String[] args) {
SomeClass1 s = new SomeClass1();
s.some_method();
}
// ....other methods....
}
그러나이 방법은이 같은 오류가 발생 것을 호출 할 때 :
Exception in thread "main" java.lang.UnsatisfiedLinkError: no libname in java.library.path
....
at java.lang.System.loadLibrary(Unknown Source)
at x.x.x.SomeClass1.<clinit>(SomeClass1.java:128)
at SomeClass2.main(SomeClass2.java:10)
나는 오류가 어디에 모르고 자바 함께 할 수있는 뭔가가 생각을 네이티브 라이브러리를 찾으십시오.
Question1 내가 사용 : 이클립스 실행 인수로 "\ 사용자 ..... \ libfolder의 \ C"와 값 인쇄 : -Djava.library.path =이 System.getProperty를을 ("자바 .library.path "); 내가 디렉토리의 많은 인쇄 볼 수 있지만 내가 인수에서 지정한 디렉토리가 아닙니다. 내가 도대체 뭘 잘못하고있는 겁니까?
질문 2 내가 할 때 : System.loadLibrary ("name"); 라이브러리 "name.so"또는 "libname.so"를 호출해야합니까?
Question3 라이브러리를 찾을 수 있지만,이에로드 된 플랫폼은 또한 UnsatisfiedLinkError를 줄 것이라고하거나 다른 오류가 주어질 것, 32 비트 상태에서 64 비트 라이브러리이었다 될 경우?
질문 4 라이브러리가로드되는 파일과 관련하여 프로젝트 폴더 또는 라이브러리를 기준으로 라이브러리 경로를 지정할 수 있습니까?
희망 사항 (내 질문 중 일부)에 답변 해 줄 수 있기를 바랍니다.
Grtz 스테판
질문 2 : 귀하의 예제 라이브러리 경로는'name.dll 될 줄 창문에 제안 ' –