JarOutputStream을 사용하여 JAR 파일 생성
JAR 파일을 프로그래밍 방식으로 생성하려면 JarOutputStream을 사용하는 경우가 많습니다. 그러나 JarOutputStream 내에서 문서화되지 않은 특정 문제를 피하는 것이 중요합니다.
1. 슬래시로 끝나는 디렉토리:
JAR 파일의 디렉토리 이름은 '/' 슬래시로 끝나야 합니다.
2. 슬래시를 사용하는 경로:
경로에 백슬래시 ''가 아닌 슬래시 '/'를 사용하세요.
3. 항목 이름에 선행 슬래시 금지:
항목 이름은 '/' 슬래시로 시작할 수 없습니다.
수정 사항이 있는 코드 예:
다음 수정된 코드는 매니페스트 파일을 사용하여 유효한 JAR 파일을 구성합니다.
<code class="java">public void run() throws IOException { Manifest manifest = new Manifest(); manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); JarOutputStream target = new JarOutputStream(new FileOutputStream("output.jar"), manifest); add(new File("inputDirectory"), target); target.close(); } private void add(File source, JarOutputStream target) throws IOException { String name = source.getPath().replace("\", "/"); if (source.isDirectory()) { if (!name.endsWith("/")) { name += "/"; } 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을 사용하여 JAR 파일을 생성할 때 문서화되지 않은 문제를 피하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!