質問: jarコマンドでマニフェストファイルを更新 jdk 1.6.0.26のjarコマンドを使って、既存のjarファイルのマニフェストファイルを更新したいのですが、下記のように警告が表示されてしまいます。 (下記例は、既存のtest.jarにマニフェストファイルmanifest.txtを更新する例です) >jar uvmf manifest.txt test.jar 2011/08/15 1:54:26 java.util.jar.attributes read 警告: duplicate name in manifest: main-class. ensure that the manifest does not have duplicate entries, and that blank lines separate individual sections in both your manifest and in the meta-inf/manifest.mf entry in the jar file. 2011/08/15 1:54:26 java.util.jar.attributes read 警告: duplicate name in manifest: class-path. ensure that the manifest does not have duplicate entries, and that blank lines separate individual sections in both your manifest and in the meta-inf/manifest.mf entry in the jar file. マニフェストが更新されました。 ちなみに、既存のtest.jarのマニフェストファイルの内容は、下記のようになっており、 main-class: jp.main.mainclass class-path: hello.jar manifest.txtの内容は、下記のようになっています。 main-class: jp.main.mainclass class-path: hello2.jar つまり、class-pathの所を別なjarファイルに書き換えたいわけです。 上記のjarコマンドで、警告はでますが、実行するとhello2.jarが動作しているようなので、大丈夫なのですが、警告が出るということは、やり方が悪いのでしょうか?
回答: ちょっと補足させて下さい。 注意を喚起すると書きましたが、なんか違うような気がしてきました。 前述したjarコマンドの処理内容を逆手に取ると、manifest.txtの中身は class-path: hello2.jar でも class-path: hello2.jar main-class: jp.main.mainclass class-path: hello2.jar でも結果は同じになる訳です。 で、後者の場合に「重複してます」という警告を出すという処理になっていると思われますが、それが微妙にバグってて、既存のマニフェストと指定のマニフェストで重複しているものに対しても警告が表示されているのではないかと思われます。 まあ何にしても気にする必要はないかと。