Javaコード内のマニフェストファイルを読み取ることはできますが、それが可能かどうか、可能であれば、コマンドラインからJARファイルを開いてそのManifest.MFファイルを表示する方法も知りたいです。または、少なくともManifest.MFファイルのプロパティを指定して、その値を表示することができます。
7 に答える
ここから:
jar ファイルから選択したエントリを抽出できます。たとえば、meta-inf/manifest.mf ファイルのみを表示する場合は、
C:\Sun\AppServer\lib>jar xvf j2ee.jar META-INF/MANIFEST.MF
inflated: META-INF/MANIFEST.MF
または、スラッシュの代わりにバックスラッシュを使用します。
C:\Sun\AppServer\lib>jar xvf j2ee.jar META-INF\MANIFEST.MF
inflated: META-INF/MANIFEST.MF
エントリ名は大文字と小文字が区別されるため、次の例では何も抽出されません。
C:\Sun\AppServer\lib>jar xvf j2ee.jar meta-inf/manifest.mf
もちろん、いつでもエントリをダブルクリックして、WinZip、fileroller、またはその他のツールで表示できます。
このようなものが動作するはずです:
jar -xf <jarfile.jar> META-INF/MANIFEST.MF
unzipコマンドが役立つようです。これは、ほとんどの Un*x バリアントで利用でき、Windows を使用している場合は cygwin の一部でもあります。unzip -qc *jar-file* META-INF/MANIFEST.MF
マニフェストの内容をコンソールにダンプします。
JDK が提供する jar 実行可能ファイルは、Linux で tar が動作するのと同じように動作します。
たとえば、jar xvf .... jar オプションを参照してください。
ランタイムのプロパティは、マニフェストで定義しないでください。Java プロパティ スタイルに従う個別の構成ファイルで定義する必要があります。なんらかの理由で実行時にマニフェストをチェックしていると仮定します。
ただし、次のことが必要な場合:
jar xvf somejar.jar META-INF/MANIFEST.MF
あなたの楽しみのためにマニフェストを膨らませます。
jar
コマンドには方法がありません。最も近いのは、ファイル-tf
の有無を表示するか、ファイルを抽出するために使用することです。META-INF/MANIFEST.MF
-xf
回避策:
- これを行うために独自のクラスを作成できます
- 任意の ZIP ファイル ビューアーを使用してコンテンツを抽出できます。多くの場合、アーカイブ内のファイルのコンテンツを stdout に書き込み、別のコマンドにパイプできるようにします (
jar
ファイルはファイルの特定の用途にすぎないことを思い出してくださいzip
) 。
そのためにviを使用するだけです。ファイルを変更しないようにしたい場合は、-R スイッチ (読み取り専用) を付けて開きます。例えば:
vi -R sample-1.0.0-SNAPSHOT.jar
上下の矢印で zip ファイルに移動するか、/ で検索できます。
/MANIFEST.MF
終了するには、次のシーケンスを入力します
:q <Enter>