>  기사  >  Java  >  타사 JAR 파일 및 DLL 종속성이 포함된 Java 애플리케이션을 단일 JAR로 패키지하려면 어떻게 해야 합니까?

타사 JAR 파일 및 DLL 종속성이 포함된 Java 애플리케이션을 단일 JAR로 패키지하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-24 09:20:10298검색

How Can I Package a Java Application with Third-Party JAR Files and DLL Dependencies into a Single JAR?

DLL 종속성을 사용하여 타사 JAR 파일 패키징

Q: 두 개의 DLL 파일과 자체 Java 프로그램이 필요한 Java 라이브러리가 있습니다. 이 라이브러리를 활용하는 것입니다. 모든 구성 요소를 내 코드, 타사 JAR 및 DLL이 모두 포함된 단일 JAR 파일로 결합하려면 어떻게 해야 합니까?

A: DLL 종속성을 통합하는 JAR 파일을 생성하려면:

  • DLL 패키지: JAR 내의 어느 위치에나 DLL 파일을 포함합니다.
  • DLL 추출: DLL을 사용하기 전에 JAR에서 하드 드라이브의 지정된 위치로 DLL을 추출합니다. 이는 추가 처리에 필수적입니다.

패키징 영역에서 DLL 및 기타 파일은 ZIP 아카이브의 파일과 유사하게 처리됩니다. 다음 Java 코드를 사용하여 JAR에서 DLL을 추출할 수 있습니다.

import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class ExtractDLLs {

    public static void main(String[] args) {
        String jarPath = "path/to/my.jar";
        String outputDirectory = "path/to/output";

        try (ZipFile jarFile = new ZipFile(jarPath)) {
            Enumeration<? extends ZipEntry> entries = jarFile.entries();

            while (entries.hasMoreElements()) {
                ZipEntry entry = entries.nextElement();

                if (entry.isDirectory()) {
                    continue;
                }

                if (entry.getName().endsWith(".dll")) {
                    InputStream in = jarFile.getInputStream(entry);
                    OutputStream out = new FileOutputStream(new File(outputDirectory, entry.getName()));

                    byte[] buffer = new byte[1024];
                    int len;
                    while ((len = in.read(buffer)) > 0) {
                        out.write(buffer, 0, len);
                    }

                    in.close();
                    out.close();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

DLL 또는 기타 파일을 JAR로 패키징하는 것은 파일을 ZIP 아카이브로 패키징하는 것만큼 간단합니다. 제공된 코드 데모는 ZIP 파일 구조를 활용하여 JAR에서 DLL을 추출합니다.

위 내용은 타사 JAR 파일 및 DLL 종속성이 포함된 Java 애플리케이션을 단일 JAR로 패키지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.