プログラムで、いまさらながらマニュフェストを読み込み
2014/02/09
java
java7
javaです。
いろいろあってマニュフェストです。
編集するツール群がなければ、自力でごにょごにょしないといけないので、念のため準備はしておこうと思うのでした。
バージョン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());
}
}
}
: