web-dev-qa-db-ja.com

Java Eclipse:JARとしてエクスポートする場合とRunnable JARとしてエクスポートする場合の違い

JARファイルとしてエクスポートする場合とRunnable JARファイルとしてエクスポートする場合のEclipseの違いは何ですか?両方とも実行可能ではありませんか?それぞれの長所と短所は何ですか?

83
well actually

実行可能なjarにはMANIFEST.MFファイルが含まれています。このファイルは、jarの実行時に実行されるメインクラスを定義します。

実行不可能なjarはクラスのライブラリであり、クラスパスに追加してコードを再利用できます(マニフェストファイルも含まれていますが、メインクラスはありません)

94
Bozho

実行可能なjarは、「Main-Class:」宣言を含むマニフェストファイルが埋め込まれたjarファイルです。 「Main-Class」は、jarが「実行」されたときにどのクラスを呼び出すかをJavaランタイムが認識するように定義する必要があります。jarに「Main-Class: 「それは「実行可能なjar」とは見なされません-Javaコードの単なるライブラリです。

これは、Eclipseがjarをエクスポートする方法の違いですが、100%確実ではありません。

詳細については、このリンクを参照してください: http://www.skylit.com/javamethods/faqs/createjar.html

20
Andy White

標準JARファイルでは、jarの実行時にコマンドラインでmainメソッドでクラスを指定する必要があります。実行可能なJARには、その情報を保持するマニフェストファイルがあり、Java -jar myRunnable.jar、または単にダブルクリックします。

14
Eric-Karl

私の場合、すべてのメインクラスとすべてのライブラリパスディレクトリがmanifest.mfで指定されていたときに、jarとしてエクスポートしていました。多くのアプリケーションが同じライブラリを使用している場合、各jarの共有ライブラリをエクスポートする必要はありません。 jarの実行が速くなります。しかし、多くの場合、異なるサーバーのクラスパスの構成の問題により、ライブラリにアクセスできません。その場合、ファイルの実行が遅くなり、サイズが大きくなる実行可能なjarをエクスポートすることは理にかなっています。

0
MR AND