Java で ZIP にファイルを追加する
war ファイルを抽出、変更、再作成する従来のアプローチに代わる方法を探しています。既存の war ファイルにファイルを直接追加する可能性を検討しています。
ネイティブ Javaサポート
Java 7 では、手動で再パッケージすることなく ZIP アーカイブ内のファイルを追加および変更できる機能を提供する Zip ファイル システムが導入されました。この API を使用すると、次のコード スニペットに示すように、ZIP ファイル内のファイルに直接書き込むことができます。
Map<String, String> env = new HashMap<>(); env.put("create", "true"); Path path = Paths.get("test.zip"); URI uri = URI.create("jar:" + path.toUri()); try (FileSystem fs = FileSystems.newFileSystem(uri, env)) { Path nf = fs.getPath("new.txt"); try (Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE)) { writer.write("hello"); } }
この方法では、war ファイルの抽出と再圧縮という時間のかかるプロセスがバイパスされ、
サードパーティ ライブラリ
一方Java のネイティブ サポートは有効であり、TrueZip などの追加機能を提供するサードパーティ ライブラリもあります。 TrueZip は、ファイルの追加やその内容の抽出機能など、ZIP ファイルを操作するための包括的な機能セットを提供します。その他の注目すべきライブラリは次のとおりです。
以上がJava で再作成せずに ZIP アーカイブにファイルを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。