EJava初心者がつまずきやすい!「コンパイル」「ビルド」「実行」の違いとは?

こんにちは。ゆうせいです。
今日はJavaを学び始めた新人エンジニアの方に向けて、「コンパイル」「ビルド」「実行」という3つの工程の違いについて、わかりやすく解説していきます。
この3つの言葉、なんとなく似ているし、使われる場面も近いから混乱しやすいんですよね。でも、エンジニアとしてプログラムを書くなら、この違いはハッキリ理解しておく必要があります!
そもそも、Javaのプログラムはどう動くの?
まずは全体の流れをざっくり確認しておきましょう。
Javaのプログラムが動くまでの流れは、大まかに次のようになります。
- ソースコードを書く(
.java
ファイル) - コンパイルする(
.class
ファイルができる) - ビルドする(必要なものをまとめる)
- 実行する(プログラムが動く!)
この中でも特に「コンパイル」「ビルド」「実行」が重要です。それぞれの意味を、ひとつずつ噛み砕いて説明していきますね。
コンパイルとは「翻訳」のこと
コンパイル:プログラムを機械語に変換すること
Javaで書いたプログラム(人間が読めるコード)は、そのままではコンピュータにとっては意味不明です。なので、コンパイル(compile)という工程を通して、機械が理解できる言葉に翻訳してあげる必要があります。
例えて言うなら…
人間の日本語を、英語しか話せないロボットに伝えるために日本語→英語に翻訳するようなものです。
Javaのコンパイルの特徴
Javaでは、コンパイルを行うと「バイトコード」という中間的なコードが生成されます。このバイトコードは、.class
という拡張子のファイルに出力されます。
javac HelloWorld.java
上のようにjavac
というコマンドを使うことで、HelloWorld.class
というファイルが作られます。
用語解説
用語 | 意味 |
---|---|
ソースコード | 開発者が書くプログラム(.javaファイル) |
バイトコード | Java仮想マシン(JVM)が理解できる中間言語 |
コンパイル | ソースコードをバイトコードに変換すること |
ビルドとは「完成品を組み立てること」
ビルド:プログラムを実行できる形に整える作業
Javaの場合、コンパイルが済んだ.class
ファイルがあれば基本的に実行可能ですが、現実のプロジェクトでは複数のクラスやライブラリ、設定ファイルなどが混在しています。
これらを一つにまとめて、実行可能なアプリケーションとしてパッケージ化するのが「ビルド(build)」です。
たとえば…
たくさんの部品(クラスやライブラリ)を組み立てて、ひとつの車(アプリ)として完成させるイメージです。
Javaにおけるビルドツール
- Maven
- Gradle
これらのツールを使えば、コンパイル・テスト・パッケージングといった一連のビルド工程を自動化できます。
mvn package
このようなコマンドを使うと、すべての部品がそろった「.jarファイル」(実行可能なアプリ)として完成します。
実行とは「動かすこと」
実行:作ったプログラムを実際に動かす工程
ビルドが終わったら、いよいよ「実行(run)」です。Javaでは次のようなコマンドで実行します。
java HelloWorld
このコマンドによって、Java仮想マシン(JVM)が.class
ファイルを読み込み、プログラムを動かしてくれます。
たとえば…
翻訳済みのレシピを見ながら、実際に料理を作り始めるようなイメージです。
コンパイル・ビルド・実行の違いをまとめてみよう
工程 | やること | 主なツール |
---|---|---|
コンパイル | ソースコードをバイトコードに変換する | javac |
ビルド | 必要なファイルをまとめて実行形式にする | Maven, Gradle |
実行 | バイトコードをJVMで動かす | java |
数式でたとえると?
数学の式で例えるなら:
- コンパイル:数式を解くために整理すること(式変形)
- ビルド:解答用紙に答えをまとめること
- 実行:その答えを実際に使って問題を解くこと
よくある質問(Q&A)
Q. Javaはコンパイルしないと実行できませんか?
はい、Javaは事前にコンパイルが必要です。Pythonのようなスクリプト言語と違って、Javaは静的型付け言語なので、先にバイトコードに変換する必要があります。
Q. 小さいプログラムならビルドは必要ない?
その通りです!簡単なプログラムなら.class
ファイルだけで実行できます。ただし、大きなプロジェクトになるとビルドは必須になります。
まとめと次のステップ
今日はJavaの「コンパイル」「ビルド」「実行」の違いについて、具体例を交えて解説してきました。
もう一度整理すると:
- コンパイル=翻訳
- ビルド=組み立て
- 実行=動かす
今後は、ビルドツール(MavenやGradle)を使いこなすことが次のステップになります。これらのツールを学べば、もっと大規模なプロジェクトやチーム開発でもスムーズに作業できますよ!
次回は「MavenとGradleの違い」についても深掘りしていく予定です。お楽しみに!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。