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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
classファイルについて
-
Eclipse・プロジェクトで、フォ...
-
eclipse でclassesフォルダーが...
-
Eclipse「リフレッシュ」と「ク...
-
SVFの設定について:クラスパス...
-
【Eclipse】パッケージ・エクス...
-
javaクラスファイルをEclipseで...
-
org.apache.tools.zip.* を使っ...
-
JADで*.jarごとデコンパイルす...
-
★javac★
-
PowerShellにてZipFileクラス利...
-
earファイルを展開する方法
-
jdbcドライバのjarファイルにク...
-
「メイン・マニフェスト属性が...
-
プログラム実行の際に、「ソー...
-
一意の文字列を取得したい
-
java クラスファイルとソースコ...
-
JSP・JAVAクラスのソースコード...
-
ソース添付に Thread.class の...
-
JAVAで別端末へファイル転送
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
classファイルについて
-
Eclipse・プロジェクトで、フォ...
-
javaクラスファイルをEclipseで...
-
Eclipse「リフレッシュ」と「ク...
-
SVFの設定について:クラスパス...
-
earファイルを展開する方法
-
【Eclipse】パッケージ・エクス...
-
eclipse でclassesフォルダーが...
-
「メイン・マニフェスト属性が...
-
java クラスファイルとソースコ...
-
プログラム実行の際に、「ソー...
-
「削除するか、クラスパスの正...
-
EclipseでHTTP404エラーが出る。
-
VisualStudioでC++クラスを追加...
-
コンパイルをしようとするとエ...
-
『ClassNotFoundException: org...
-
Java初心者です。 コマンドプロ...
-
jdbcドライバのjarファイルにク...
-
【Eclipse】逆コンパイルでエラ...
-
Jarコマンドでマニフェストファ...
おすすめ情報