JARファイルとしてエクスポートする場合とRunnable JARファイルとしてエクスポートする場合のEclipseの違いは何ですか?両方とも実行可能ではありませんか?それぞれの長所と短所は何ですか?
実行可能なjarにはMANIFEST.MFファイルが含まれています。このファイルは、jarの実行時に実行されるメインクラスを定義します。
実行不可能なjarはクラスのライブラリであり、クラスパスに追加してコードを再利用できます(マニフェストファイルも含まれていますが、メインクラスはありません)
実行可能なjarは、「Main-Class:」宣言を含むマニフェストファイルが埋め込まれたjarファイルです。 「Main-Class」は、jarが「実行」されたときにどのクラスを呼び出すかをJavaランタイムが認識するように定義する必要があります。jarに「Main-Class: 「それは「実行可能なjar」とは見なされません-Javaコードの単なるライブラリです。
これは、Eclipseがjarをエクスポートする方法の違いですが、100%確実ではありません。
詳細については、このリンクを参照してください: http://www.skylit.com/javamethods/faqs/createjar.html
標準JARファイルでは、jarの実行時にコマンドラインでmainメソッドでクラスを指定する必要があります。実行可能なJARには、その情報を保持するマニフェストファイルがあり、Java -jar myRunnable.jar
、または単にダブルクリックします。
私の場合、すべてのメインクラスとすべてのライブラリパスディレクトリがmanifest.mfで指定されていたときに、jarとしてエクスポートしていました。多くのアプリケーションが同じライブラリを使用している場合、各jarの共有ライブラリをエクスポートする必要はありません。 jarの実行が速くなります。しかし、多くの場合、異なるサーバーのクラスパスの構成の問題により、ライブラリにアクセスできません。その場合、ファイルの実行が遅くなり、サイズが大きくなる実行可能なjarをエクスポートすることは理にかなっています。