プログラムで、いまさらながらマニュフェストを読み込み 2014/02/09

javaです。
いろいろあってマニュフェストです。

編集するツール群がなければ、自力でごにょごにょしないといけないので、念のため準備はしておこうと思うのでした。

  java.util.jar.Manifestがあるので読みこんで、追加したい項目を追加したの書き出すという流れになるかなと思います。

バージョンjava7です。

実行結果はこんな感じ
[Implementation-Title=xxxx, Manifest-Version=1.0, aaaa=OK]
[Implementation-Title=ooo, Manifest-Version=1.1, aaaa=OK]

package mf; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.util.jar.Attributes; import java.util.jar.Manifest; public class TestReadMf { public static void main(String[] args) throws IOException { a(); } static void a() throws IOException { String smf = "/doc-files/MANIFEST2.MF"; URL url = TestReadMf.class.getResource(smf); System.out.println(url); Manifest mf = new Manifest(); // java7 この書き方でいいのか自信ないけど // 読み込み try (InputStream is = url.openStream()) { mf.read(is); System.out.println(mf.getMainAttributes().entrySet()); } // 書き込み try (OutputStream outputStream = new FileOutputStream(url.getFile())) { Attributes a = mf.getMainAttributes(); a.put(Attributes.Name.MANIFEST_VERSION, "1.1"); a.put(Attributes.Name.IMPLEMENTATION_TITLE, "ooo"); a.put(new Attributes.Name("aaaa"), "OK"); mf.write(outputStream); System.out.println(mf.getMainAttributes().entrySet()); } } }

: