JAR에 네이티브 및 JNI 라이브러리 번들
최근 개발자는 네이티브 라이브러리를 포함한 여러 종속성을 단일 JAR 파일. 이 전략은 배포를 단순화하고 재배포 문제를 줄이는 것을 목표로 합니다.
네이티브 라이브러리 난제
이 노력에서 직면한 과제 중 하나는 실제 네이티브 라이브러리를 포함하는 것이었습니다. JNI 라이브러리에만 초점을 맞춘 기존 시도입니다. 또한 이전 솔루션은 특정 기본 종속성 플러그인에 맞게 조정된 것으로 보였으며 일반적인 재배포에는 적합하지 않을 수 있습니다.
포괄적인 솔루션
선호되는 접근 방식은 System.load(File) - java.library.path 시스템 속성에 의존하는 기존 System.loadLibrary(String) 대신 라이브러리를 로드합니다. 이 방법을 사용하면 사용자가 라이브러리를 수동으로 설치할 필요가 없지만 JAR이 필요한 모든 라이브러리를 캡슐화하지 않으면 플랫폼 간 이식성이 저하될 수 있습니다.
구현 프로세스
메인 클래스의 정적 초기화 프로그램에 코드를 구현하여 다음을 수행합니다.
사례 연구: jzmq
이 솔루션은 jzmq, Java에 사용되었습니다. 내장된 버전을 로드할 수 없는 경우 하이브리드 기능을 통해 java.library.path를 따라 라이브러리를 검색하도록 폴백할 수 있는 ZeroMQ용 바인딩.
위 내용은 단일 JAR 파일에 네이티브 라이브러리와 JNI 라이브러리를 어떻게 묶을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!