実行可能なjarファイルを作成して、Eclipseからjarファイルにライブラリを抽出してパッケージ化することの違いを知りたいです。
私のプログラム(実行可能なjar)がこれらの外部ライブラリ(jar)を必要とする他のクラスを使用している場合、何を選ぶべきですか?
生成されたjarファイルにjarを入れたい場合は、パッケージ化方法を使用できます。たとえば、Apacheライブラリまたは他のサードパーティjarを使用している場合、これらのjarを生成されたjarに保持したい場合があります。この場合、パッケージを使用します。 「必要なライブラリをjarファイルにパッケージ化する」オプションは、org.Eclipse.jdt.internal.jarinjarloader
パッケージのクラスを生成ファイルに配置し、このパッケージはルートディレクトリのすぐ下にあります生成されたjarファイルの。このオプションは、Eclipseのjarローダークラスにより、サイズの点でより大きなjarファイルも作成します。
必要なライブラリを抽出すると、パッケージの命名規則に従ってサードパーティライブラリのクラスがjarファイルに配置されます。 jarコンテンツを開くと、org.Apache..
パッケージの下にいくつかのクラスが表示されます。
メインクラスのエントリは、これらのjarファイルのMANIFEST.MF
ファイル間で異なります。
パッケージ必要なライブラリの場合のメインクラスエントリ:
Main-Class: org.Eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
extract必須ライブラリの場合のメインクラスエントリ:
Main-Class: YourMainClass
私が使用する場合の主な違いは、packaged JARファイルが別個のアイテムとしてそのまま含まれているため、著作権情報と署名データが保持されることです。
extractを選択した場合、クラスファイルは元のコンテキストから取り出され、元のコンテキストのように保存されるため、最終的なJARのサイズは小さくなりますが、一部のライセンス条件に違反する可能性があります場合。この場合、Eclipseはライセンスについても警告します。
そのため、サードパーティのJARライブラリを使用する場合は、常にpackageとするのが専門家です。
両方の方法で試して、結果のjarファイルをZipプログラムで開きます。非常に有益です。