2009-08-30 3 views
0

이 문제는 저를 괴롭 히고 누군가 나를 도울 수 있기를 바랍니다. 커다란 자바 소프트웨어 용 플러그인 라이브러리를 작성했습니다. 내 모든 개발 컴퓨터에서 잘 작동합니다. 그러나 Nullsoft Installer에서 소프트웨어를 컴파일하고 랩핑하고 다른 컴퓨터에 설치 한 후에는 개발 한 네이티브 dll 플러그인을 제외한 모든 프로그램이 실행되고 System.loadLibrary를 호출하면 UnsatisfiedLinkError가 발생합니다. 설치 프로그램은 내 dev 컴퓨터에서 작동합니다. 설치된 소프트웨어는 원래 소프트웨어를 옮긴 후에도 잘 실행됩니다. 여기에 내가 알고있는 작업은 다음과 같습니다Java LoadLibrary UnsatisfiedLinkError, Java가 파일을 볼 수 있지만 다른 컴퓨터에서 실행될 수 있습니다.

  • 네이티브 라이브러리는 .NET (C++/CLI)에 deved JNI

    새 컴퓨터에서 소프트웨어가 올바른 라이브러리 경로를로드
  • 에 의해 매혹 볼 수 있습니다 네이티브 dll. Java에서는 File 클래스를 사용하여 파일에 대한 사용 권한을 확인하기 위해 세그먼트를 추가했습니다. Java는 library_dll.canRead() 및 library_dll.canWrite()에서 제대로 실행되지만, library_dll.canExecute()에서는 중지되거나 중단됩니다.

누구든지 나를 도울 수 있다면, 정말 감사하겠습니다 !!! 다들 감사 해요!

+0

UnsatisfiedLinkError에 포함 된 메시지/스택은 문제를 결정하는 데 중요합니다. 답변은 사용자가 포함 할 때까지만 추측 할 수 있습니다. –

+0

프로그램을 실행할 때 -Djava.library.path를 지정합니까? –

답변

0

대상 컴퓨터에 .NET이 설치되어 있고 올바른 .NET 버전이 설치되어 있습니까?

나는 .NET/JNI interop를 해본 적이 없다고 말할 수 없습니다. 잠재적으로 나에게 까다로울 수 있습니다. 더 쉽게 작업하기 위해 JNBridge을 사용 했습니까?

0

감사합니다. Jon! 아니요, 대상 컴퓨터에 .NET이 설치되어 있지 않습니다 (적어도 기본적으로 Windows가 가진 것보다 많지 않음). 하지만 Java/JNI는 dll을로드 할 수없는 것처럼 보입니다. .NET 프레임 워크를 설치하려고합니다.

.NET/JNI interop은 어려운 부분이 아니며, 내 dev comp ... 까다 롭지 만 그리 어렵지는 않습니다.

0

FileMon을 문제가있는 컴퓨터에서 실행 한 다음 응용 프로그램을 실행 해보십시오. FileMon이 데이터를 캡처 한 후에는 Java 응용 프로그램에서 수행 한 모든 파일 액세스를 확인하고 UnsatisfiedLink 오류로 이어지는 정확한 오류를 확인해야합니다. 예를 들어, JNI DLL의 일부 종속성이 다른 컴퓨터에서 누락되었을 수 있습니다 (보안/사용 권한 오류가 발생한 후 좋은 가능성이 있음).

관련 문제