JNI 프로젝트에서 UnsatisfiedLinkError 해결: 종속 라이브러리 누락
JNI 프로젝트에서 "종속 라이브러리를 찾을 수 없습니다"라는 메시지와 함께 UnsatisfiedLinkError가 발생합니다. "는 mylib.dll과 같은 사용자 정의 라이브러리가 타사에 의존하는 경우 발생할 수 있습니다. 시스템 검색 경로에서 사용할 수 없는 라이브러리(예: libsndfile-1.dll) 이 문제를 해결하려면 따라야 할 몇 가지 주요 단계가 있습니다.
-
올바른 DLL 배치 확인: 사용자 정의 DLL(mylib.dll)과 필수 종속성(libsndfile- 1.dll)을 Java 애플리케이션의 JAR 파일과 동일한 디렉터리에 저장합니다.
-
DLL 기능 확인 이름 지정: 사용자 정의 DLL의 함수 이름이 JNI 헤더 파일에 정의된 이름과 정확히 일치하는지 확인하세요. 필요한 경우 빌드 프로세스에서 링커 플래그를 조정하여 올바른 메서드 이름 지정을 보장합니다.
-
Windows 관련 동작을 고려하세요. Windows에서 java.library.path 시스템 속성이 명시적으로 지정되지 않은 경우 설정된 경우 DLL은 현재 작업 디렉터리 또는 Windows PATH 환경에 포함된 디렉터리에 있어야 합니다. 변수.
추가 문제 해결 팁:
-
종속성 워커 경고 확인:종속성 워커가 MPR에 대해 해결되지 않은 가져오기를 표시하는 경우에도 .DLL 및 SHLWAPI.DLL의 경우 DW에 언급된 대로 이러한 경고는 종종 무시될 수 있습니다. FAQ.
-
공유 라이브러리 검색 경로 확인: "java -XshowSettings:properties -version" 명령(Java 8 이상에서 사용 가능)을 사용하여 공유 라이브러리 검색 경로를 표시하고 다음을 확인하세요. 필요한 DLL에 액세스할 수 있습니다.
-
클래스 경로 문제 제거: 클래스 경로 및 공유 라이브러리 검색 경로는 별개이며 관련이 없습니다. 필요한 모든 JAR 파일이 클래스 경로에 올바르게 포함되어 있는지 확인하세요.
이 단계를 주의 깊게 따르면 개발자는 JNI 프로젝트에서 종속 라이브러리 누락과 관련된 UnsatisfiedLinkError를 해결하여 애플리케이션을 원활하게 실행할 수 있습니다.
위 내용은 내 JNI 프로젝트에서 'UnsatisfiedLinkError: Can't Find 종속 라이브러리를 찾을 수 없습니다'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!