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

こんにちは。ゆうせいです。

今日はJavaを学び始めた新人エンジニアの方に向けて、「コンパイル」「ビルド」「実行」という3つの工程の違いについて、わかりやすく解説していきます。

この3つの言葉、なんとなく似ているし、使われる場面も近いから混乱しやすいんですよね。でも、エンジニアとしてプログラムを書くなら、この違いはハッキリ理解しておく必要があります!

そもそも、Javaのプログラムはどう動くの?

まずは全体の流れをざっくり確認しておきましょう。

Javaのプログラムが動くまでの流れは、大まかに次のようになります。

  1. ソースコードを書く.javaファイル)
  2. コンパイルする.classファイルができる)
  3. ビルドする(必要なものをまとめる)
  4. 実行する(プログラムが動く!)

この中でも特に「コンパイル」「ビルド」「実行」が重要です。それぞれの意味を、ひとつずつ噛み砕いて説明していきますね。


コンパイルとは「翻訳」のこと

コンパイル:プログラムを機械語に変換すること

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年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。