2015-01-19 5 views
0

jar 파일에 싸서 제 프로젝트 클래스 경로에 jar 경로를 추가하고 사용을 시도한 제 3 자 클래스 파일이 있습니다.UnsatisfiedLinkError 받기 - 도와주세요

클래스는 다음을 포함 : 내 코드에서이 클래스를 사용하려고하면

static 
{ 
_isloaded = false; 
try 
{ 
    Runtime.getRuntime().loadLibrary("some-dll-name (no extension!)"); 
    _isloaded = true; 
} 
catch (Exception localException) {}catch (Error localError) {} 
} 

, 내가 UnsatisfiedLinkError를 예외를 얻을 : 지금까지 그것을 읽은 내용에서

java.lang.UnsatisfiedLinkError: lrapi1.vtc.connect(Ljava/lang/String;II)Z at lrapi1.vtc.connect(Native Method) at Actions.init(Actions.java:64)

아마도 dll을 JVM에서 찾을 수 없다는 것입니다. 그래서 c : \ windows \ system32와 프로젝트 원본 폴더에 넣었습니다.

하지만 여전히 예외가 발생합니다.

알려 주시기 바랍니다.

감사합니다.

+0

전체 스택 추적을 추가 할 수 있습니까? 32 비트 JDK와 함께 해당 dll의 32 비트 버전을 사용하고 있습니까? (그리고 그 반대의 경우도 마찬가지입니다.) –

+0

파일 이름에 표준 접두사가 있고 (.dll 확장자와 함께) 라이브러리 이름에 포함되어서는 안되는 이름이 있는지 확인하십시오. loadLibrary()에 전달해야합니까? 예를 들어, 유닉스에서 "libmylib.so"를 "mylib"로로드 할 것입니다 –

+0

Jakub,별로 추가 할 필요가 없습니다 ... java.lang.UnsatisfiedLinkError : lrapi1.vtc.connect (Ljava/lang/String; II) Z at lrapi1 .vtc.connect (네이티브 메서드) System.err : \t at Actions.init (Actions.java:64) 32 비트 Dll과 32 비트 JDK를 사용합니다. – dushkin

답변

0

에 한번 예를 들어 확장과 dll 파일의 전체 경로와 "some-dll-name (no extension!)" 교체 : 여기에서 설명 Runtime.getRuntime().loadLibrary("C:/Windows/System32/crypt32.dll"); 같이

+0

감사합니다. Boris, 글쎄요.이 변경은 정적 코드가 존재하는 클래스의 객체를 만들려고 시도하기 전에도 예외가되었습니다. java.lang.NoClassDefFoundError : lrapi1/vtc at Actions.init (Actions.java:62) 발생 원인 : java.lang.ClassNotFoundException : lrapi1.vtc – dushkin