현재 작업에는 코드, 타사 JAR 파일 및 그에 수반되는 DLL 종속성을 포함하는 단일 JAR 파일을 생성하는 작업이 포함됩니다. . 이 질문은 특히 SWT 라이브러리를 예로 들어 주목을 받았습니다.
해결책은 JAR 파일 내에서 모든 것을 함께 패키징하는 데 있습니다. 그러나 중요한 주의 사항이 있습니다. DLL을 활용하기 전에 DLL을 JAR에서 추출하여 하드 디스크에 저장해야 합니다. 그렇지 않으면 해당 파일에 액세스할 수 없습니다.
더 명확히 설명하자면, DLL이나 기타 파일을 JAR로 패키징하는 과정은 ZIP 아카이브를 생성하는 것과 유사합니다. JAR 구조 내에 필요한 파일을 포함시키기만 하면 됩니다.
예를 들어 다음 Java 코드 조각을 고려하십시오.
// ... static { logger.info("Loading DLL"); try { System.loadLibrary(ACWRAPPER); logger.info("DLL is loaded from memory"); } catch (UnsatisfiedLinkError e) { loadFromJar(); } } private static void loadFromJar() { // we need to put both DLLs to temp dir String path = "AC_" + new Date().getTime(); loadLib(path, ACWRAPPER); loadLib(path, AAMAPI); loadLib(path, LIBEAU); } private static void loadLib(String path, String name) { // ... } // ...
이 코드는 JAR에서 DLL을 추출하고 임시 디렉토리 및 이후 메모리에 로드됩니다. 이 프로세스를 이해하면 DLL 종속성을 포함하여 필요한 모든 구성 요소를 포함하는 JAR 파일을 효과적으로 생성할 수 있습니다.
위 내용은 내 Java 코드가 포함된 DLL 종속성을 단일 JAR 파일로 패키지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!