>Java >java지도 시간 >Java에서 JarOutputStream을 사용하여 JAR 파일을 올바르게 생성하는 방법은 무엇입니까?

Java에서 JarOutputStream을 사용하여 JAR 파일을 올바르게 생성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-29 13:42:02979검색

How to Properly Create a JAR File Using JarOutputStream in Java?

JarOutputStream을 사용하여 JAR 파일 생성

이 문서에서는 Java의 java.util.jar.JarOutputStream 클래스를 사용하여 프로그래밍 방식으로 JAR 파일을 생성하는 방법을 다룹니다. 생성된 JAR 파일은 처음에는 올바르게 표시될 수 있지만 사용 시 라이브러리를 로드하지 못할 수 있습니다. 그 이유는 문서화되지 않은 JarOutputStream의 특정 단점에 있습니다.

JarOutputStream의 단점:

  • 디렉터리 이름은 '/' 슬래시로 끝나야 합니다.
  • 경로는 ''가 아닌 '/' 슬래시를 사용해야 합니다.
  • 항목은 '/' 슬래시로 시작할 수 없습니다.

JarOutputStream을 사용한 올바른 접근 방법:

올바른 방법을 사용하여 매니페스트 파일이 포함된 JAR 파일을 생성하려면 다음 단계를 따르세요.

  1. 매니페스트 객체를 생성하고 해당 기본 속성을 채웁니다.
  2. 생성 FileOutputStream 및 Manifest 객체를 사용하는 JarOutputStream.
  3. add() 메서드를 사용하여 JAR 파일에 파일과 디렉터리를 반복적으로 포함합니다.

add() 메서드:

<code class="java">private void add(File source, JarOutputStream target) throws IOException {
    String name = source.getPath().replace("/", "/"); // Ensure path uses '/' slash
    if (source.isDirectory()) {
        if (!name.endsWith("/")) {
            name += "/"; // Add trailing '/' for directories
        }
        JarEntry entry = new JarEntry(name);
        entry.setTime(source.lastModified());
        target.putNextEntry(entry);
        target.closeEntry();
        for (File nestedFile : source.listFiles()) {
            add(nestedFile, target);
        }
    } else {
        JarEntry entry = new JarEntry(name);
        entry.setTime(source.lastModified());
        target.putNextEntry(entry);
        try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(source))) {
            byte[] buffer = new byte[1024];
            while (true) {
                int count = in.read(buffer);
                if (count == -1)
                    break;
                target.write(buffer, 0, count);
            }
            target.closeEntry();
        }
    }
}</code>

이러한 지침을 따르면 JarOutputStream을 사용하여 다른 Java 도구와 호환되는 JAR 파일을 프로그래밍 방식으로 생성할 수 있습니다.

위 내용은 Java에서 JarOutputStream을 사용하여 JAR 파일을 올바르게 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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