JAVAのjarコマンド(a)の-jar包装クラスファイル

基本的にすべてのクラスファイル、リソースファイルは圧縮されたパケット(圧縮しないことを選んでもよい)、必要に応じて生成されたMETA-INF / MANIFEST.MFファイルのjarパッケージは、MANIFEST.MFファイルのリストでラベルされたjarファイルのパッケージ、どの缶仮想マシンのメインクラス、クラスパスやその他の情報を記録します。
時間の次の期間、我々は次のパスとコマンドジャーマニフェストファイルを学びますという知識

    のjarパッケージクラスファイル
    のパッケージパッケージのクラスのjarファイルと
    マニフェストファイル使用して

、我々はJavaのjarファイルに習熟するための簡単なプログラムを使用します。この記事ではそれはjarファイルを使用して上達するためのものであるので、以下の操作は、冗長な再利用のjarコマンドであってもよいし、コマンドを使用して、以下のフィルム物品のディレクトリがあり、Liteのオプションのjarコマンドを直接参照

            jarコマンドのオプションを
                使用
                オプション
                順に、このセクションで使用される
            2つの実行可能JARファイルのクラスの唯一の実装
                全てMainjar変更MANIFESTMFファイルを抽出した後、再パッケージするメソッド
                のマニフェストファイルに割り当てられたときに、JARパッケージを生成する第2の方法を
                方法3つのJARパッケージであります指定されたドキュメントのリスト
                、更新ファイルのための方法4は、jarファイルのリストである
            の3クラスの複数のパッケージ

オプションのjarコマンド。
使用方法:

ブレースオプションはオプションであり、JARファイルはJARファイルで括弧内に、必須であるマニフェストファイルマニフェストファイル、META-INFジャーパッケージ/ MANIFEST.MFファイル即ち

ジャー{ctxui} [vfmn0PMe] [JARファイル] [マニフェストファイル] [エントリポイント] [-C DIR]ファイル...

    1つの

オプション:

-c(作成)新しいアーカイブを作成する
-tリストアーカイブディレクトリ
アーカイブから-xエキスを特定の(またはすべての)ファイルの
既存のアーカイブを更新する-u(更新)を
標準出力に出力冗長に生成する-v
アーカイブファイル名を指定する-f
-mは、マニフェスト情報が含まれマニフェストファイルで指定された
新しいファイルの-nを作成した後、実行Pack200の正規化
-eは、別個の実行可能なアプリケーションのJARファイルに関連付けられている
    アプリケーションのエントリポイントを指定
-0専用メモリと、任意のZIP圧縮を使用しない
-Pプリアンブル予約ファイル名「/」(絶対パス)、および「..」(親ディレクトリ)成分
-Mマニフェストファイルエントリが作成されない
指定されたJARファイルのインデックス情報を生成する-i
指定したディレクトリに-C変化と以下のファイルが含ま

    。1
    2
    。3
    。4
    。5
    。6
    。7
    。8
    9
    10
    11
    12
    13
    14
    15

コマンドこのセクションで使用

xx.jar [ファイル... |パスUFジャー ] JARファイルの更新の最後に、この記事に新しいマニフェストファイルを生成することに留意すべきです「方法4:jarファイルを更新するために、ファイルは、文書のリストである」の例では、説明

のjarのCF xx.jar [ファイルを... |パス ] などxx.jarにパッケージ化ファイルまたはディレクトリのパスとファイルされます
[ジャーCVFのxx.jarファイル... |パス]同上、ディスプレイ情報の詳細な。
マニフェスト・ファイルxx.jar CMF jarファイルを[ファイル ... |パス]は、そのようなファイルやディレクトリのパスパッケージxx.jarとして提出し、そのマニフェストファイルの開発に
瓶CMF XXを.jar [ファイル... |パス]は、パッケージマニフェストファイルを生成しない、そのようなファイルやディレクトリパスにパッケージxx.jarとして提出します
xx.jar UF jarファイルを[...ファイル|パス ] このような更新にファイルまたはディレクトリとして提出しますxx.jar、注意を払うようにしてください!このアップデートでは、マニフェストファイルの再生成します
jarファイルUMF xx.jar [ファイル... |パス ] 上記のが、マニフェストファイルは生成されません
マニフェスト・ファイルxx.jar UMFのjar {ファイルを ... |パス}は他の文書またはパスを提出しますxx.jarへのディレクトリ更新
xx.jarをリストされているすべてのファイルxx.jarのJAR TF
現在のディレクトリ内のすべてのファイルを抽出するジャーXF xx.jar xx.jar
カレントディレクトリに等抽出されたファイルでxx.jar {ファイル...} xx.jar XFジャー

    。1
    2
    3
    4
    5
    6
    7
    8
    9
    10

2クラスの唯一の実現、実行可能jarファイルには、

最初に我々のテストクラスを置いjarDemo、フォルダを作成し

ます。mkdir jarDemo
CD jarDemo
タッチMain.java

    1
    2
    3は、

私たちのハローワールドコードMain.javaの内部を追加、とjavacコンパイラを

{メインクラス公開
    パブリック静的な無効メイン(文字列引数...){
        するSystem.out.println( "Hello World"の);
    }
}

    1
    2
    3。
    4。
    5。

javacのMain.javaであります

    1は

その後、Main.classパッケージを生成し、cオプションは、新しいjarファイルのパッケージを作成することです、fは指定されたJARパッケージの名前である

jarファイルCF main.jar Main.class

    1

vオプションの追加使用する場合は、詳細な情報パッケージを示しています

main.jar Main.class CVF瓶

    1

我々は、パッケージの内容は、出力ディレクトリとファイルパッケージである、あなたはデフォルト生成されたMANIFEST.MFファイルを参照することができ、瓶内tオプションによって生成されたビュー可能なファイル

main.jar TF jarファイルを

出力:
META-INF /
META-INF / MANIFEST.MF
Main.class

    。1
    2
    。3
    。4
    。5
    。6

もちろん、我々は、パッケージがファイルのみMain.classていることが分かる、M MANIFEST.MFファイルオプションによって生成されない場合があり

RMメイン。 JARの
JAR CMF main.jar Main.class
JARのTFのmain.jarの

出力:
Main.class

    。1
    2
    3。
    4。
    5。
    6。

我々はMain.classは、パッケージ化されているとMain.classはメイン(文字列...引数)エントリー方法が、瓶を持っているか、仮想マシンがの主な方法である。このパッケージではどのクラスを知らないため、実行できませんが、

Javaの-jar main.jarの

出力:
プロパティのmain.jarなしマスターリスト

    1
    2
    3
    4

MANIFEST.MFファイルmain.jarのパッケージを持っているために、以下のか、元に戻す、我々は彼が解凍したい、MANIFEST.MFの中にメインクラスのプロパティを追加
解凍を多くの方法のjarパッケージがある私たちの目的は、私たちの下に名前の熟練使用ジャーのためなので、私たちの目的は、生成されたMANIFEST.MFのデフォルトのビューファイルを抽出し、変更を行い、最終的に実行可能なjarファイルのパッケージを生成することですこの目標を達成するための複数の方法を使用すると、
すべてのMain.jarを抽出した後、MANIFEST.MFファイルを修正し、再パッケージ:メソッドを

jarファイルのunzipコマンドは、現在のディレクトリに抽出することができますので、このファイルは混乱の原因となります、私たちは、新しいフォルダの解凍を作成しますMain.jarは、このフォルダにコピーした後、解凍、あなたが見ることができる、のjarパッケージのすべてのファイル、xオプションは、この場合には、ファイルをすべての前方に置くか、指定されています すべての文書が提示されている場合、実際にあなたがfオプションでファイルを指定することができますが、このようなXF main.jarのJARのMETAとして、前方に置く- >> INF / MANIFEST.MF

ます。mkdir解凍
のcp main.jar解凍
CD解凍
JAR XF main.jar
LS -RF

出力:
INF-META / Main.class main.jar

./META-INF:
MANIFEST.MF

    。1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

オープンMETA-INF / MANIFEST.MFファイルは、デフォルトのマニフェストファイルが生成するのは非常に簡単であり、参照しますたった2つのライン

マニフェスト・バージョン:1.0
作成した-BY:1.8.0_101(オラクル・コーポレーション)

    。1
    2

アドオンは、上側メインクラス属性を追加するには、コロンの注目は、スペースを残さなければならない、そして最後に改行が滞在しなければならない

マニフェスト・バージョン:1.0
バイ作成:1.8.0_101(オラクル・コーポレーション)
メインクラス:メイン

    1
    2
    3

その後、その後、解凍すべてのディレクトリ、パッケージ全体をファイル、初のオリジナルmain.jarを削除するために注意を払う、あなたが最終的にこの新しいを実行していることができますmain.jarメインクラス属性は、それが

main.jar RM
のJAR main.jarのCMFを。
ます。java -jar Main.jar

出力:
こんにちは、世界

    1
    2
    3
    4
    5
    6

このオプションがあり、元の解凍ディレクトリため、または上記のリストを生成するために、ジャーCFコマンドを使用している場合、Mのリストを生成するために使用されていない上記のjarコマンドことに注意してくださいメインメインクラス:リストを生成された最初のパッケージには、メインクラスが存在しない、同じである

RMのmain.jarの
JAR CF2のmain.jar。
ジャワ-jar main.jar

出力:
main.jar属性マスタリストない

    。1
    2
    3。
    4。
    5。
    6

方法2:文書の一覧割り当てるジャーパッケージを生成する

ので、次の解凍、削除main.jarのMETA-INFディレクトリ、およびMETA-INFディレクトリの下に、我々 MANIFEST.MF、または解凍A・ディレクトリの方法Main.classと非圧縮の2つだけMANIFEST.MFファイル、メインクラスは、MANIFEST.MFマニフェストファイル属性である

ミュージックビデオMETA-INF / MANIFEST。
RM main.jar
RM META-INF -R&LT
LS -RF

出力:
Main.class MANIFEST.MF

    。1
    2
    3
    4
    5
    6
    7は

、Main.jarを生成し、文書のリストを指定するmオプションドキュメントの指定されたリストを取っ

MANIFEST.MF Main.class main.jar JAR CMFを
ジャワ-jar main.jar

出力:
こんにちは、世界

    1
    2
    3
    4
    5

方法3:JARパッケージのマニフェストファイルを指定して

も、あなたのためのMain.jarメインクラスが存在しないことを早いjardemoディレクトリのリストということを覚えて、我々はそのためのメインクラスマニフェストファイル更新した
jardemo /解凍をMANIFEST.MFディレクトリはメインクラスで、我々は次のjardemoディレクトリにそれを取る

CDデスクトップ/ jardemo
MV解凍/のMANIFEST.MF。
解凍-r RM
LS -RF

出力:
MANIFEST.MF Main.class main.jar main.java

    。1
    2
    。3
    。4
    5
    6
    7

元のパッケージとMain.jarインベントリ情報の新しいマニフェストファイルは二つのフィールドを持っているので、ファイル、出力いくつかの警告のリストを指定するには、mオプションを使用して、JARパッケージを更新するために使用uオプションは、同じ名前である

MANIFEST -umf瓶.MFのmain.jarの

出力:
2017年3月13日午前10時50分50秒午後読むjava.util.jar.Attributesの
WARNING:マニフェスト:.マニフェスト・バージョンで重複名
の重複するエントリのマニフェストはそれは持っていないことを確認し、
その空白別々の両株における個々のセクションあなたの
JARファイルのMANIFEST.MFでMETA-INF /エントリのマニフェストとインチ
2017年3月13日午前十時50分50秒午後読むjava.util.jar.Attributesの
WARNING:マニフェストで重複名:作成されます。
それは、と持ってきていない重複するエントリのマニフェストていることを確認の
空白行がで個々のセクションを分離することを両方、あなたの
。マニフェストとMANIFEST.MFにMETA-INF /エントリーでJARファイル

    。1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12である
    13は

、次に実行JAR

のJava -jar main.jar

出力:
ハローワールド

    1。
    2
    3。
    4。

FOUR :更新のjarファイルに、ファイルは、ファイルのリストである

オプションに慣れるために、主に、このメソッドを使用して再度uはコンセプトやパッケージを理解し
、我々はjardemoディレクトリにMain.jarのメインクラスのリストを削除したが、ここでも最初のMANIFEST.MFを生成しませんメインクラスmain.jar

JAR CF2 main.jar Main.classを

    。1

メインクラスのレコード内のjarパッケージMANIFEST.MFが、唯一のMANIFEST.MFファイルのjarパッケージ、我々はMANIFEST.MFのメインクラスを交換し、方法は三つの主要なクラスを持っている何のMANIFEST.MFをMain.jarません同じ効果は、最初のパッケージ内のjarファイルがMETA-INFディレクトリに配置される前に、私たちが見た正しい道にあるMANIFEST.MFのメインカテゴリに関するすべての話、jarファイルを更新するために、Uを使用する、使用する必要がありますに注意ですマニフェストファイルを無視するM

ます。mkdir META-INF
META-INFのMANIFEST.MFミュージックビデオを
JARは、META-INF / MANIFEST.MF main.jar UMF
のJava -jar main.jar

出力:
Hello Worldのを

    。1
    2
    3。
    4。
    5。
    6。
    7。

以上3クラスより。パッケージ

内に1つずつ、jarDemoディレクトリはMain.javaクラスの情報や主なマニフェストファイルMANIFEST.MFを持って、我々は2つだけ、すべての文書、他のすべてを削除し、新しいSay.javaファイルの作成に保つ

LSを-RF

出力:
META-INF / Main.javaがSay.javaある

./META-INF:
MANIFEST.MF

    。1
    2
    3
    4
    5。
    6
    。7

新しいSay.javaで:

パブリッククラス{言う
    パブリック静的ボイド言う(文字列STR){
        System.out.printlnは(+ STR "である");
    }
}

    1
    2
    3。
    4。
    5が。

ようにMain.javaを変更しますSay.sayそれは(...)メソッドセイクラスを呼び出す

パブリッククラスメイン{
    公共の静的な無効メイン(文字列...引数){
        System.out.printlnは(「こんにちは世界」);
        Say.say(「チャールズ」);
    }
}

    。1
    2
    。3
    。4
    。5
    。6

我々コンパイルドキュメントとパッケージング、メインクラスはMANIFEST.MFプロパティを指定することに注意

のjavac * .javaファイル
JAR CMFは、META-INF / Main.class Say.classをmain.jar MANIFEST.MF
ます。java -jar Main.jar

输出:
ハローワールド
これはチャールズです

おすすめ

転載: www.cnblogs.com/YZFHKMS-X/p/11840281.html