
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が動作しているようなので、大丈夫なのですが、警告が出るということは、やり方が悪いのでしょうか?
No.2ベストアンサー
- 回答日時:
ちょっと補足させて下さい。
注意を喚起すると書きましたが、なんか違うような気がしてきました。
前述したjarコマンドの処理内容を逆手に取ると、manifest.txtの中身は
Class-Path: hello2.jar
でも
Class-Path: hello2.jar
Main-Class: jp.main.MainClass
Class-Path: hello2.jar
でも結果は同じになる訳です。
で、後者の場合に「重複してます」という警告を出すという処理になっていると思われますが、それが微妙にバグってて、既存のマニフェストと指定のマニフェストで重複しているものに対しても警告が表示されているのではないかと思われます。
まあ何にしても気にする必要はないかと。
No.1
- 回答日時:
jarコマンドのmオプションは、既存のマニフェストファイルを指定されたマニフェストファイル(今回ではmanifest.txt)に置き換えるという挙動ではなく、「指定されたマニフェストファイル(manifest.txt)中に記述されている名前と値のペアを1つずつ、既存のマニフェストファイルに取り込んでいく」という挙動になります。
つまり今回の例で言うと、更新したいのはClass-Pathのみですから、manifest.txtの中身は
Class-Path: hello2.jar
だけでも大丈夫なわけです。
その取り込む処理の中で、存在しない名前:値のペアの場合は追加し、(今回のClass-Pathのように)存在してるペアの場合は上書きするという処理になります。
問題の「警告」ですが、上書きする際に「上書きました」という情報を親切に表示させているだけです。敢えて「警告」にしてるのは、ユーザが想定してない場合を考慮して、注意を喚起する為だと思われます。
ですので、全く気にする必要はないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 英文の添削をお願いします 4 2023/05/23 11:10
- UNIX・Linux VScodeでjarファイルを開く方法 1 2022/06/03 17:00
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- アプリ jarを変換する方法 2 2022/06/04 14:26
- 英語 この英文は平易な反面格調高いですか? 1 2023/01/15 12:04
- 競馬 今のJARのCMは嫌悪感を催しませんか? 5 2023/06/09 13:58
- 英語 分離不定詞 1 2023/07/16 17:29
- 英語 この英文は格調高いのでしょうか? 3 2022/06/03 18:55
- その他(SNS・コミュニケーションサービス) 自分のpcがハッキングされたようなメールが来たのですがどうすればいいですか? 4 2022/10/02 16:14
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jdbcでinsert,delete,createをe...
-
プログラミングの問題です。大...
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
「main メソッドを持つクラスが...
-
Eclipse 動的プロジェクトで404...
-
正規表現について質問です。 カ...
-
スプレッドシートからリマイン...
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JDONWROADER2のエラー修復
-
Googleログインボタンのデザイ...
-
配列にnullを代入すると、null...
-
jdbcでinsert,delete,createをe...
-
「main メソッドを持つクラスが...
-
プログラミングの問題です。大...
-
eclipseで作ったプログラムを他...
-
正規表現について質問です。 カ...
-
Eclipse 動的プロジェクトで404...
-
マイクラでPythonのプログラミ...
-
jdk17.06のインストーラーが起...
-
自作Androidアプリのデータ引き...
-
直し方について教えて頂きたい...
-
eclipse実行ができない
-
サーブレットをapacheで公開す...
-
あんまりお料理しないのに台所...
-
CSV出力を画面から選択したデー...
-
次のhtml・cssでspan内の文字を...
-
問題作成のWebアプリの作り方を...
-
ゲーム開発の入門書を探しています
おすすめ情報