はじめに (対象読者・この記事でわかること)

この記事は、Eclipseを使用してJavaプロジェクトを開発している方、特に「作成したJavaプログラムを、Javaの実行環境がインストールされていれば、いつでもどこでも簡単に実行できるようにしたい」と考えている方を対象としています。

この記事を読むことで、Eclipseの標準機能を使って、開発したJavaプロジェクトを、ダブルクリックするだけで実行できる「実行可能JARファイル(Executable JAR file)」としてエクスポートする方法を習得できます。これにより、コマンドラインからの実行だけでなく、より手軽にアプリケーションを配布・実行できるようになります。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。

  • Javaの基本的な文法とプログラミングの概念
  • Eclipse IDEの基本的な操作(プロジェクト作成、コード編集、実行など)
  • JARファイル(Java Archive)の概念について、大まかな理解があること

EclipseでJavaプロジェクトをJARファイル化するメリット

Eclipseで開発したJavaアプリケーションを、実行可能なJARファイルとしてエクスポートすることには、いくつかの大きなメリットがあります。

まず、 portability(携帯性・可搬性)の向上です。JARファイルは、Javaのクラスファイル、リソース、メタデータなどを一つにまとめたアーカイブ形式です。これにより、複数のファイルやディレクトリをまとめて配布する手間が省け、単一のファイルとして簡単に持ち運びや共有が可能になります。

次に、実行の容易さです。実行可能JARファイルとしてエクスポートされたJavaプログラムは、Java Runtime Environment(JRE)がインストールされている環境であれば、コマンドプロンプトやターミナルから java -jar YourApp.jar というコマンド、あるいはWindowsであればファイルエクスプローラー上でファイルをダブルクリックするだけで起動できます。これは、特にGUIアプリケーションや、頻繁にテスト・デモを行う場合に非常に便利です。

さらに、配布の簡便化にも繋がります。Webアプリケーションのように複雑なデプロイメントプロセスを必要としない、スタンドアロンなJavaアプリケーションであれば、作成したJARファイルをユーザーに提供するだけで、開発した機能をすぐに利用してもらうことができます。

もちろん、Webアプリケーションのデプロイメントなど、より高度な用途ではWARファイルなどの別の形式が用いられることもありますが、個人開発のツール、学習用プログラム、あるいは小規模なデスクトップアプリケーションなどにおいては、実行可能JARファイルは非常に有効で、手軽な配布・実行手段となります。

実行可能JARファイルのエクスポート手順

EclipseでJavaプロジェクトを、ダブルクリックで実行できるJARファイル(実行可能JARファイル)としてエクスポートする手順を、具体的な操作画面のイメージを交えながら解説します。

ステップ1:プロジェクトの準備と確認

まず、JARファイル化したいJavaプロジェクトがEclipseで正常に動作することを確認してください。 特に、main メソッドを持つクラスが、プログラムのエントリーポイント(開始点)として正しく定義されていることが重要です。

  1. main メソッドの確認: プロジェクト内の、プログラムの開始点となるクラスを開き、public static void main(String[] args) というシグネチャを持つメソッドが存在することを確認します。

    java public class MyApp { public static void main(String[] args) { System.out.println("Hello, JAR World!"); // ここにメインの処理を記述 } }

  2. 依存ライブラリの確認: もしプロジェクトが外部のJARライブラリ(例:Apache Commons, Log4jなど)に依存している場合は、それらがプロジェクトのビルドパスに正しく追加されていることを確認してください。実行可能JARファイルには、これらの依存ライブラリも一緒に含めるか、別途配布する必要があります。今回は、Eclipseの機能で依存ライブラリをJARファイルに含める方法を解説します。

ステップ2:JARエクスポートウィザードの起動

Eclipseのメニューから、JARエクスポートウィザードを起動します。

  1. プロジェクトの選択: Package Explorer(またはProject Explorer)ビューで、エクスポートしたいJavaプロジェクトを右クリックします。

  2. エクスポートメニューの選択: 表示されるコンテキストメニューから、「Export...」を選択します。

    Eclipse Export Menu (※上記はイメージです。実際の画面と若干異なる場合があります。)

ステップ3:JARファイルのエクスポート設定

Exportウィザードが開いたら、「Java」フォルダを展開し、「Runnable JAR file」を選択します。そして「Next」ボタンをクリックします。

Runnable JAR file Selection (※上記はイメージです。実際の画面と若干異なる場合があります。)

ステップ4:実行可能JARファイルの設定詳細

「Runnable JAR file export」画面が表示されます。ここで、実行可能JARファイルを作成するための詳細設定を行います。

  1. Launch configuration: 「Launch configuration」のドロップダウンリストから、実行したいmainメソッドを持つクラスを選択します。通常、プロジェクト名と同じ名前の構成が表示されているはずです。もし表示されない場合は、該当するmainメソッドを持つクラスをプロジェクト内で一度実行(右クリック→Run As→Java Application)してみてください。

  2. Export destination: 「Export destination」の「Browse...」ボタンをクリックし、作成されるJARファイルの保存場所とファイル名を指定します。任意の場所を指定できますが、プロジェクトのルートディレクトリや、分かりやすい任意のフォルダを指定するのが一般的です。「.jar」の拡張子を忘れないようにしてください。

  3. JARパッケージング: ここで、依存ライブラリをどのように扱うかを指定します。実行可能JARファイルには、通常、依存ライブラリも一緒に含めることが多いです。以下の2つのオプションがあります。

    • Extract required libraries into generated JAR (推奨): このオプションを選択すると、プロジェクトが依存している外部JARファイルの内容が、生成される実行可能JARファイル内に展開されて(抽出されて)格納されます。これにより、単一のJARファイルだけでアプリケーションが実行できるようになります。通常はこのオプションを選択するのが最も手軽です。
    • Package required libraries into generated JAR: このオプションを選択すると、依存ライブラリは、生成されるJARファイルとは別のJARファイルとして、指定したディレクトリにコピーされます。実行時には、生成されたJARファイルと、これらの依存JARファイルが同じディレクトリにある必要があります。

    今回は、手軽さを優先して「Extract required libraries into generated JAR」を選択します。

    Runnable JAR Export Settings (※上記はイメージです。実際の画面と若干異なる場合があります。)

ステップ5:エクスポートの実行

設定が完了したら、「Finish」ボタンをクリックします。 もし、依存ライブラリが正しく設定されていない、またはmainメソッドが見つからないといった問題がある場合、警告やエラーメッセージが表示されることがあります。その場合は、メッセージを確認して設定を見直してください。

エクスポートが成功すると、指定した場所に実行可能JARファイルが作成されます。

ステップ6:JARファイルの実行確認

作成されたJARファイルを、実際に実行してみましょう。

  • Windowsの場合: 作成されたJARファイルをダブルクリックします。 または、コマンドプロンプトを開き、JARファイルのあるディレクトリに移動して java -jar YourApp.jar と入力してEnterキーを押します。(Java Runtime Environment (JRE) がシステムにインストールされ、PATHが通っている必要があります。)

  • macOS/Linuxの場合: ターミナルを開き、JARファイルのあるディレクトリに移動して java -jar YourApp.jar と入力してEnterキーを押します。

プログラムが正常に実行され、期待通りの出力が得られれば、JARファイル化は成功です!

ハマった点やエラー解決

エラー1:No main manifest attribute, in YourApp.jar

  • 原因: JARファイルは作成されたものの、どのクラスのmainメソッドをエントリーポイントとして実行すれば良いかを示す情報(Manifestファイル)が正しく生成されていない場合に発生します。これは、エクスポートウィザードで「Launch configuration」が正しく選択されていない、またはmainメソッドを持つクラスがプロジェクト内に存在しないことが原因であることが多いです。

  • 解決策:

    1. 再度、JARエクスポートウィザードを開き、「Launch configuration」でmainメソッドを持つクラスが正しく選択されているか確認してください。
    2. プロジェクトのsrcフォルダ直下などに、public static void main(String[] args)を持つクラスが配置されているか確認してください。
    3. もしmainメソッドを持つクラスを特定できない場合、そのクラスを一度「Run As → Java Application」で実行してみてください。

エラー2:ClassNotFoundExceptionNoClassDefFoundError

  • 原因: 実行可能JARファイルには、プロジェクトで利用している依存ライブラリが正しく含まれていない場合に発生します。特に、Extract required libraries into generated JAR オプションを選択せずにエクスポートした場合や、依存ライブラリのパス設定が誤っている場合に起こりやすいです。

  • 解決策:

    1. JARエクスポートウィザードで、「Runnable JAR file export」画面に戻り、「JAR packageing」の項目で、Extract required libraries into generated JAR を選択しているか確認してください。
    2. もし、このオプションを選択しても問題が解決しない場合は、プロジェクトの「Build Path」設定を確認し、依存ライブラリが正しく参照されているか再確認してください。

エラー3:GUIアプリケーションが起動しない、または表示がおかしい

  • 原因: GUIアプリケーションの場合、SwingやJavaFXなどのGUIフレームワークに関する依存関係が正しくJARファイルに含まれていない、あるいは実行環境のディスプレイサーバーとの連携に問題がある可能性があります。

  • 解決策:

    1. GUIフレームワークに関連するライブラリ(例: JavaFX SDKなど)が、プロジェクトのビルドパスに正しく追加されているか確認してください。
    2. エクスポートする際に、依存ライブラリをJARファイルに含めるオプション(Extract required libraries into generated JAR)が正しく選択されていることを再度確認してください。
    3. 必要であれば、GUIフレームワークのドキュメントや、実行環境(OS、ディスプレイサーバーなど)との互換性に関する情報を参照してください。

まとめ

本記事では、Eclipseを用いてJavaプロジェクトを、ダブルクリックで実行可能な「実行可能JARファイル」としてエクスポートする手順を詳細に解説しました。

  • 実行可能JARファイル化のメリット: portabilityの向上、実行の容易さ、配布の簡便化
  • エクスポート手順:
    1. プロジェクトの準備(mainメソッドの確認)
    2. Exportウィザードの起動
    3. Runnable JAR file の選択
    4. Launch configuration, Export destination, JAR packaging の設定
    5. エクスポート実行
  • よくあるエラーと解決策: No main manifest attribute, ClassNotFoundException などの対処法

この記事を通して、Eclipseから手軽にJavaアプリケーションを実行可能な形式で出力し、その利便性を実感していただけたことと思います。 今後は、生成したJARファイルをWebサーバー(Tomcatなど)にデプロイする手順や、より高度なJARファイルのマニフェスト設定についても記事にする予定です。

参考資料