【初心者向け】Gradleで.jarファイルを作成する手順をわかりやすく解説

## 1. はじめに

Javaでアプリケーションを開発すると、最終的には「**.jarファイル（Java Archive）**」という形式で成果物をパッケージングすることが多いです。この `.jar` ファイルは、Javaのクラスやリソースファイルをまとめて配布・実行するための形式で、コマンド一つで簡単にアプリケーションを実行できるようになります。

本記事では、**ビルドツールとしてGradleを使用して、シンプルなJavaプロジェクトから `.jar` ファイルを作成する方法**を解説します。

Gradleを使うことで、依存関係の管理やビルド処理を自動化できるため、手作業でのミスを防ぎ、開発の効率を大幅に向上させることができます。

こんな方におすすめです：

- Gradleを使ったことがない方  
- Javaの `.jar` ファイルを手軽に作成したい方  
- 学習用や小規模なツールを配布・実行しやすくしたい方  

今回は、コマンドラインで操作する基本的な使い方に絞って紹介するので、GradleやJavaに不慣れな方でも安心して読み進めていただけます。

## 2. 環境情報

この記事を実行するための前提条件として、以下の環境が整っていることが必要です。

### 前提条件
以下は著者の環境になるので参考までに。
- **Gradleを利用したファイルが作成されていること**
  Gradleプロジェクトがすでに作成されていることが前提となります。もしまだ作成していない場合は、まずGradleのプロジェクトを初期化してください。

- **JDKが正しく設定されていること**  
  本記事では、JDKとして **Amazon Corretto 21.0.7_6** を使用しています。以下のコマンドでJDKのバージョンが正しくインストールされていることを確認してください。

  ```bash
  $ java -version
  $ openjdk version "21.0.7" 2025-04-17
  $ OpenJDK Runtime Environment (build 21.0.7+6-29)
  $ OpenJDK 64-Bit Server VM (build 21.0.7+6-29, mixed mode)

## 3. `build.gradle` の設定

Gradleで`.jar`ファイルを作成するためには、まずプロジェクトのルートディレクトリにある`build.gradle`ファイルを設定する必要があります。このファイルに必要なプラグインや設定を記述していきます。

以下の設定を`build.gradle`に追加します。

### 必要なプラグインの適用

最初に、`java`プラグインと`application`プラグインを適用します。これにより、GradleがJavaプロジェクトとしてビルドできるようになり、アプリケーションを実行可能な`.jar`ファイルにパッケージできます。

```groovy
plugins {
    id 'java'         // Javaプラグイン
    id 'application'  // アプリケーションプラグイン（実行可能なjarファイルを作成するため）
}
group = 'com.example'    // プロジェクトのグループID（任意）
version = '1.0'          // バージョン（任意）

application {
    mainClass = 'com.example.App'  // 実行するメインクラス（自分のクラス名に変更。ここではAppというクラス）
}
```

## 4. `.jar` ファイルの作成方法

Gradleでは、`.jar`ファイルを作成する方法がいくつかあります。代表的なものとして、以下の3種類があります。

- **`jar`**: 通常の`.jar`ファイルを作成します。依存関係は含まれず、純粋なJavaクラスファイルのみがパッケージされます。
- **`bootJar`**: Spring Bootアプリケーションの場合に使用される`.jar`ファイルを作成します。Spring Bootのアプリケーションを実行するために必要な全ての依存関係が含まれます。
- **`build`**: プロジェクトの全体をビルドします。`jar`ファイルの作成も含まれますが、実行可能な`.jar`やテスト、リソースなども含まれるため、最も一般的に使用されるコマンドです。

### それぞれの違い

- **`jar`**: 最もシンプルな`jar`ファイルを作成しますが、依存関係やリソースファイルは含まれません。
- **`bootJar`**: Spring Bootの場合、実行可能な`jar`ファイルを作成します。アプリケーションに必要な依存関係や設定ファイルが自動的に含まれるため、簡単にアプリケーションを配布・実行できます。
- **`build`**: プロジェクトのビルド全体を行い、`.jar`ファイルを含む成果物を作成します。`jar`タスクを実行するのとほぼ同じですが、`build`タスクには追加の処理（テスト、リソースのコピーなど）が含まれます。

---

### ビルドコマンドの実行

一般的なプロジェクトで`.jar`ファイルを作成するには、`gradle build`コマンドを使用します。このコマンドは、上記の`jar`タスクや`bootJar`タスクを実行し、最終的に`.jar`ファイルを生成します。

### plain jarの作成
```bash
$ ./gradle clean jar
```
### 実行可能 jarの作成
```bash
$ ./gradle clean bootJar
```
### plain jar, 実行可能 jarの作成
```bash
$ ./gradle clean build
```

### `.jar` ファイルの確認

ビルドが成功すると、`build/libs/`ディレクトリに`.jar`ファイルが生成されます。以下のコマンドで確認できます。

```bash
$ ls build/libs/
App.jar
```

### 補足：Plain Jar と 実行可能 Jar

- **Plain Jar（通常の `.jar`）**  
  `jar` タスクで生成される `.jar` ファイルは、**依存関係が含まれていません**。含まれるのは自分のプロジェクトでコンパイルされた **Javaクラスファイルやリソースファイルのみ** です。  
  そのため、この `.jar` ファイルを実行するには、**外部ライブラリ（依存関係）をクラスパスに手動で追加**する必要があります。

- **実行可能な Jar**  
  実行可能な `.jar` ファイルには、アプリケーションの **エントリーポイント（mainメソッド）** に加えて、**すべての依存関係やリソース** が含まれています。  
  たとえば、**Spring Boot プロジェクト**で使用される `bootJar` タスクでは、依存関係もすべて含まれた **自己完結型の `.jar`** が生成されます。  
  このような `.jar` ファイルは、次のように **コマンド1つで簡単に実行**できるのが特徴です。

  ```bash
  $ java -jar build/libs/YourApp-1.0.jar
  ```

## 5. Eclipseの「実行構成」に `./gradlew clean bootJar` を保存する方法

毎回ターミナルで `./gradlew clean bootJar` を手動で入力するのが手間に感じる場合は、Eclipseの「実行構成」にコマンドを登録しておくことで、ワンクリックでビルドを実行できるようになります。

### 手順

1. **メニューから「実行構成」を開く**

   メニューバーの「実行」 > 「実行構成...」をクリックします。

2. **[Gradle タスク] を新規作成**

   左ペインから `Gradle タスク` を選択し、右クリックして「新規」または「構成の新規作成」を選びます。

3. **任意の名前を設定**

   構成にわかりやすい名前（例：`Clean and BootJar`）を付けます。

4. **プロジェクトを指定**

   「プロジェクト」欄で対象のGradleプロジェクトを選択します。

5. **タスクを指定**

   「タスク」欄に以下のように入力します：
    `clean bootJar`

※スペース区切りで複数のタスクを指定できます。

6. **[実行] をクリック**

右下の「実行」ボタンをクリックすると、指定したタスク（この場合は `clean` → `bootJar`）が順に実行されます。
以下、参考までにbuildが成功した際のメッセージを記載しておきます。
  ```bash
> Task :clean

> Task :compileJava
The LenientConfiguration.getArtifacts(Spec) method has been deprecated. This is scheduled to be removed in Gradle 9.0. Use a lenient ArtifactView with a componentFilter instead. Consult the upgrading guide for further information: https://docs.gradle.org/8.12.1/userguide/upgrading_version_8.html#deprecate_filtered_configuration_file_and_filecollection_methods

> Task :processResources
> Task :classes
> Task :resolveMainClassName
> Task :bootJar

[Incubating] Problems report is available at: file:///C:/pleiades/workspace/App/build/reports/problems/problems-report.html（プロジェクト配下のパスになります）

BUILD SUCCESSFUL in 8s
5 actionable tasks: 5 executed

  ```
---

### 次回以降の実行方法

一度設定しておけば、次回以降はメニューの「実行」から構成名（例：`Clean and BootJar`）を選ぶだけで、コマンドを入力せずに実行できます。

また、ショートカットキー（例：`Ctrl + F11`）でも直前に実行した構成を再実行できます。

---

このようにして、Eclipse上で `./gradlew clean bootJar` を毎回手打ちする必要がなくなり、開発効率を向上させることができます。

## まとめ

この記事では、Gradleを使って `.jar` ファイルを作成する方法について、コマンドラインやEclipseなど複数の手段で解説しました。

- `jar`, `bootJar`, `build` の違い
- Plain Jar と実行可能 Jar の特徴
- Eclipseでのビルド方法とタスクの実行
- `./gradlew clean bootJar` を Eclipse に保存して簡略化する方法

私自身、Spring Boot プロジェクトを WAR ではなく JAR でデプロイしようとしたときに、「どのタスクを実行すればいいの？」「Eclipseからできないの？」「Javaのバージョンエラーってなに？」と多くの壁にぶつかりました。

この記事は、そんな自分自身のつまずきから得た知識をまとめたものであり、**同じように悩んでいる方の助けになれば嬉しいです。**

---
最後まで読んでいただき、ありがとうございました！  
もし役に立ったと思ったら、いいねやストックしてもらえると励みになります 😊