
Java超|Javaコンパイルと実行の流れ
Javaは、書いただけでは動かない。コンパイルという鍛錬を通して、コードは実行できる力を手に入れる。
Javaの学習では、コードを入力して保存しただけでは、まだプログラムを動かす準備は完了していません。
Javaでは、ソースファイルに書いたコードを、コンピュータが実行しやすい形へ変換する必要があります。この変換作業が コンパイル です。
最初は、コードを書いたらすぐに実行できそうに感じるかもしれません。けれどもJavaでは、ソースファイルを作成したあと、javac を使ってコンパイルし、その結果として作られる class ファイルを使って実行へ進みます。
つまり、Javaプログラムは 書く → コンパイルする → 実行する という流れで動きます。この記事では、具体的なプログラムとして Sample1.java を使いながら、コンパイルと実行の流れを順番に解説します。
ドラゴンボール風にたとえるなら、Javaコードは戦士が書いた 技の型の巻物 です。
ただし、巻物を書いただけでは、まだ技は発動しません。修行装置で鍛え、実戦で使える技にする必要があります。
| Javaの作業 | ドラゴンボール風のたとえ |
|---|---|
| コードを書く | 技の型を巻物に記す |
| コンパイルする | 型を実戦で使える技へ鍛える |
| classファイルが作られる | 鍛えられた技が完成する |
| 実行する | 技を実際に放つ |
Javaのコンパイルは、派手な動作ではありません。
しかし、プログラムを動かすために欠かせない大切な通過点です。
コンパイルとは何か
コンパイルとは、Javaで書かれたソースコードを、実行に向いた形へ変換する作業です。
Javaのコードは、人間にとって読みやすい形で書かれています。
たとえば、クラス名、main、System.out.println など、英単語や記号を組み合わせて処理を書きます。
しかし、そのままではJavaの実行環境が扱う準備ができていません。そこで、コンパイラというソフトウェアを使って、Javaコードを バイトコード という形式へ変換します。
| 用語 | 意味 |
|---|---|
| ソースファイル | 人が書いたJavaコードを保存したファイル |
| コンパイル | ソースファイルを実行用の形へ変換する作業 |
| コンパイラ | コンパイルを行うソフトウェア |
| バイトコード | Javaの実行環境が扱うための変換後の形式 |
| クラスファイル | バイトコードが保存されたファイル |

Javaでは、ソースファイルをそのまま実行するのではなく、まずコンパイルして class ファイルを作ります。
この関係を一言で表すと、次のようになります。
| コンパイル前 | コンパイル | コンパイル後 |
|---|---|---|
| Sample1.java | javac Sample1.java | Sample1.class |
ドラゴンボール風にたとえるなら、Sample1.java は技の型を書いた巻物です。
javac は、その巻物を読み取り、実戦で使える技へ鍛える修行装置のような役割です。
そして Sample1.class は、鍛錬を終えて実戦で使える形になった技です。
なぜコンパイルが必要なのか
Javaのコードは、人間が理解しやすいように書かれています。
たとえば、次のようなコードを見れば、文字を表示しようとしていることが何となく分かります。
System.out.println("Java修行の第一歩です。");人間にとっては読みやすいですが、実行のためにはJavaの仕組みが扱いやすい形式へ変換する必要があります。
そのためにコンパイルを行います。
| 段階 | 内容 |
|---|---|
| 人間が書く段階 | Javaの文法にしたがってコードを書く |
| コンパイル段階 | javac がコードを変換する |
| 実行準備完了 | Sample1.class が作られる |
| 実行段階 | java でプログラムを動かす |
コンパイルが必要な理由は、Javaプログラムが次の流れで動くからです。
| 手順 | 内容 |
|---|---|
| 1 | ソースファイルを作成する |
| 2 | コンパイルする |
| 3 | 実行する |
この順番を理解しておくと、自分が今どの段階にいるのかが分かりやすくなります。
コードを書いている段階なのか。
コンパイルして class ファイルを作る段階なのか。
それとも、作られた class ファイルを実行する段階なのか。
この区別ができるようになると、Java学習でつまずいたときにも原因を探しやすくなります。
図:Javaコードが実行できる技になるまで

この図が示していること
この図では、Sample1.java が javac Sample1.java によってコンパイルされ、Sample1.class になる流れを表しています。
Javaでは、テキストエディタで入力したコードをそのまま実行するのではありません。
まずコンパイラを使って、実行に向いた形へ変換します。
この流れを視覚的に見ると、ソースファイル、コンパイル、クラスファイルの関係が分かりやすくなります。
コンパイルの前に準備すること
コンパイルを行うには、PowerShell またはコマンドプロンプトを使います。
そして、まず大切なのが、ソースファイルが保存されているディレクトリへ移動すること です。
ここでいうディレクトリとは、Windowsでいうフォルダのことです。
Javaのコンパイルでは、今いるディレクトリを基準にしてファイルを探します。
たとえば、Sample1.java を次の場所に保存したとします。
C:\Java\01この場合、PowerShellで次のように入力して、その場所へ移動します。
cd \Java\01実行例は次のようになります。
PS C:\Users\ユーザー名> cd \Java\01
PS C:\Java\01>表示が PS C:\Java\01> に変われば、現在のディレクトリが C:\Java\01 になったことが分かります。
| コマンドの部分 | 意味 |
|---|---|
| cd | ディレクトリを移動する |
| \Java\01 | 移動先のディレクトリ |
| cd \Java\01 | C:\Java\01 へ移動する |
cd のあとには、空白を1つ入れてから移動先を書きます。
cd \Java\01cd\Java\01 のように空白を入れない書き方ではなく、cd と移動先の間に半角スペースを入れる点を意識しましょう。
ドラゴンボール風にたとえるなら、Sample1.java が置いてある修行部屋へ移動してから、鍛錬を始めるようなものです。
巻物が C:\Java\01 にあるのに、自分が別の場所にいると、javac は対象のファイルを見つけられません。
コンパイラを実行する
ソースファイルがあるディレクトリへ移動できたら、いよいよコンパイルします。
Javaのコンパイラを起動するには、javac を使います。
今回コンパイルするファイルは Sample1.java です。
ファイル名:Sample1.java
class Sample1
{
public static void main(String[] args)
{
// 最初の修行メッセージを表示する
System.out.println("Java修行の第一歩です。");
}
}このファイルをコンパイルするには、PowerShellで次のように入力します。
javac Sample1.java実行例です。
PS C:\Java\01> javac Sample1.javaここで大切なのは、javac のあとに空白を1つ入れて、ソースファイル名を .java まで含めて正しく入力することです。
| 項目 | 内容 |
|---|---|
| コマンド名 | javac |
| 空白 | javac のあとに1つ入れる |
| 指定する名前 | Sample1.java |
| 拡張子 | .java まで入力する |
コンパイル時には、ソースファイル名を拡張子付きで指定します。
javac Sample1.javaここで Sample1 だけにしたり、Sample1.class と書いたりすると、正しくコンパイルできません。
| 場面 | 正しい入力 |
|---|---|
| コンパイル | javac Sample1.java |
| 実行 | java Sample1 |
コンパイルでは Sample1.java を指定します。
実行では Sample1 を指定します。
この違いは、Java学習の最初にしっかり押さえておきたいポイントです。
コンパイルが成功するとどうなるか
コンパイルが成功すると、PowerShellには特に何も表示されず、もう一度プロンプトが表示されます。
PS C:\Java\01> javac Sample1.java
PS C:\Java\01>はじめて見ると、何も表示されないので「本当に成功したのかな」と不安になるかもしれません。
でも、これは正常です。
javac は、エラーがなければ静かに終了することが多いです。
| PowerShellの状態 | 意味 |
|---|---|
| 何も表示されずプロンプトに戻る | コンパイル成功 |
| エラーメッセージが表示される | コードや入力内容に問題がある |
| classファイルが作られない | コンパイルに失敗している可能性がある |
コンパイルが成功すると、Sample1.java と同じディレクトリに Sample1.class が作られます。
| コンパイル前 | コンパイル後 |
|---|---|
| Sample1.java がある | Sample1.java と Sample1.class がある |
この Sample1.class が、クラスファイルです。
クラスファイルには、Javaコードを変換したバイトコードが入っています。
ドラゴンボール風にたとえるなら、巻物に書かれた技の型が、鍛錬によって実戦で使える技に変わった状態です。
Sample1.java は人が書いた巻物、Sample1.class は実行の準備が整った技です。
クラスファイルとは何か
クラスファイルは、コンパイルによって作成されるファイルです。
拡張子は class です。
今回であれば、Sample1.java をコンパイルすると、Sample1.class が作られます。
| ファイル名 | 種類 | 役割 |
|---|---|---|
| Sample1.java | ソースファイル | 人が書いた元のJavaコード |
| Sample1.class | クラスファイル | コンパイル後に作られる実行用のファイル |
このクラスファイルは、あとでプログラムを実行するときに使われます。
Javaでは、自分が編集するファイルと、実行に使われるファイルが分かれています。
| 作業 | 扱うファイル |
|---|---|
| コードを書く・修正する | Sample1.java |
| コンパイル後に作られる | Sample1.class |
| 実行時に使われる | Sample1.class |
コードを修正したいときは、Sample1.java を編集します。
そして、修正後の内容を反映するには、もう一度 javac Sample1.java でコンパイルします。
この流れはとても大切です。
Sample1.java を編集する
↓
javac Sample1.java でコンパイルする
↓
Sample1.class が更新される
↓
java Sample1 で実行するJava学習では、コードを直したら再コンパイルするという感覚を早めに身につけておくと安心です。
図:コードを直したら再コンパイルする流れ

この図が示していること
この図では、Sample1.java を編集したあと、もう一度 javac Sample1.java を実行して、Sample1.class を更新する流れを表しています。
Javaでは、ソースファイルを修正しただけでは、実行用のクラスファイルには反映されません。
修正した内容を実行結果に反映するには、保存してから再コンパイルする必要があります。
この流れを覚えておくと、コードを直したのに実行結果が変わらない、という混乱を減らせます。
コンパイルで覚えておきたい大事なポイント
コンパイル手順では、特に次の点が重要です。
| 大事なポイント | 内容 |
|---|---|
| 正しい場所へ移動する | Sample1.java があるディレクトリへ移動する |
| javac を使う | コンパイラを起動する命令 |
| ファイル名を正しく入力する | Sample1.java のように拡張子まで書く |
| 成功時は静かに終わる | 何も表示されなくても成功していることがある |
| classファイルが作られる | Sample1.class が生成される |
特に、次の形は最初にしっかり覚えておきましょう。
javac Sample1.javaこの形は、Java学習で何度も登場します。
| 部分 | 意味 |
|---|---|
| javac | コンパイルする命令 |
| Sample1.java | コンパイル対象のソースファイル |
| .java | ソースファイルであることを示す拡張子 |
ドラゴンボール風にたとえるなら、javac Sample1.java は、Sample1.java という巻物を修行装置に持ち込んで、実戦用の技へ鍛える合図です。
エラーが表示されたらどうするか
コンパイルをしようとしたときに、エラーが表示されて Sample1.class が作成されないことがあります。
でも、これは珍しいことではありません。
Java学習の最初は、少しの入力ミスでエラーになることがよくあります。
大切なのは、エラーを怖がらず、落ち着いて確認することです。
よくある原因は次の通りです。
| 原因 | 例 |
|---|---|
| 半角で入力すべき文字を全角で入力した | ( や ; などが混ざっている |
| 大文字と小文字を間違えた | main を Main にしてしまった |
| カッコが対応していない | { と } の数が合っていない |
| ファイル名を間違えた | Sample1.java ではない名前を入力した |
| セミコロンを忘れた | 文の終わりに ; がない |
| 違うディレクトリにいる | Sample1.java がある場所へ移動していない |
Javaには文法のルールがあります。
そのルールに合っていないと、コンパイラは正しくバイトコードへ変換できません。
コンパイラは間違いを教えてくれる
エラーが表示されると、失敗したように感じるかもしれません。
でも、コンパイラはただ止まっているのではありません。
コードのどこかに問題があることを知らせてくれています。
つまり、コンパイラは次のような案内をしてくれていると考えると分かりやすいです。
| コンパイラの反応 | 意味 |
|---|---|
| エラーを表示する | このコードは正しく理解できない |
| 行番号を示す | このあたりを確認してほしい |
| メッセージを出す | 文法や入力内容を見直してほしい |
ドラゴンボール風にたとえるなら、コンパイラは修行を見てくれる師匠です。
型が崩れていれば、どこが違うのかを知らせてくれます。
エラーは怖いものではありません。
どこを直せばよいのかを探すための手がかりです。
見直すときのチェックポイント
コンパイルエラーが出たときは、次の順番で確認すると原因を見つけやすくなります。
| 確認すること | 見るポイント |
|---|---|
| ファイル名 | Sample1.java と正しく保存しているか |
| コマンド | javac Sample1.java と入力したか |
| 現在のディレクトリ | C:\Java\01 など、保存場所に移動しているか |
| 半角・全角 | 記号や英数字が全角になっていないか |
| 大文字・小文字 | main、String、System などを正しく書いたか |
| カッコの対応 | { } や ( ) が正しく対応しているか |
| セミコロン | 文の終わりに ; を付け忘れていないか |
特に、初心者のうちは次の3つを重点的に確認するとよいです。
| 優先して見るポイント | 理由 |
|---|---|
| ファイル名 | コンパイル対象を間違えると始まらない |
| 半角・全角 | 見た目が似ていても別文字として扱われる |
| カッコとセミコロン | Javaの文法でよく使うためミスが起きやすい |
エラーが出たときは、一気に全部を直そうとせず、上から順番に確認していきましょう。
図:コンパイルエラー確認の流れ

この図が示していること
この図では、コンパイルエラーが出たときに、どこを確認すればよいのかをチェックリスト形式で表しています。
エラーが出ても、慌てる必要はありません。
ファイル名、コマンド、現在のディレクトリ、半角・全角、大文字・小文字、カッコ、セミコロンを順番に見直すことで、原因を見つけやすくなります。
また、コードを修正したら、保存してからもう一度 javac Sample1.java を実行する流れも大切です。
エラーは学習の妨げではなく、正しいコードへ近づくための手がかりです。
コンパイル後は実行へ進む
コンパイルに成功して Sample1.class が作られたら、次はプログラムを実行します。
実行には java を使います。
java Sample1ここで注意したいのは、実行時には .java も .class も付けないことです。
| 場面 | 入力する内容 |
|---|---|
| コンパイル | javac Sample1.java |
| 実行 | java Sample1 |
実行例です。
PS C:\Java\01> java Sample1
Java修行の第一歩です。これで、Sample1.java に書いた処理が実行され、画面に文字が表示されます。
Javaの流れを整理すると、次のようになります。
| 手順 | 入力例 | 起こること |
|---|---|---|
| 1 | Sample1.java を作成 | ソースファイルを用意する |
| 2 | cd \Java\01 | 保存先へ移動する |
| 3 | javac Sample1.java | Sample1.class を作る |
| 4 | java Sample1 | プログラムを実行する |
ドラゴンボール風にたとえるなら、巻物を書き、修行部屋へ移動し、技を鍛え、最後に技を放つ流れです。
| Javaの操作 | ドラゴンボール風の流れ |
|---|---|
| Sample1.java を作る | 技の型を巻物に書く |
| cd \Java\01 | 巻物のある修行部屋へ行く |
| javac Sample1.java | 技を鍛える |
| Sample1.class ができる | 実戦用の技が完成する |
| java Sample1 | 技を放つ |
コンパイルはJava学習の大事な通過点
Java学習では、コードを入力したあと、すぐに実行へ進むのではなく、まずコンパイルを行います。
この流れに慣れることは、Javaを理解するうえでとても大切です。

コードを書く
↓
コンパイルする
↓
クラスファイルができる
↓
実行するこの真ん中にあるのが、コンパイルです。
最初は、javac という命令や class ファイルという言葉が少し難しく感じるかもしれません。
でも、実際に Sample1.java をコンパイルして、Sample1.class が作られる様子を見ると、Javaのしくみがぐっと身近になります。
| 学習で身につく感覚 | 内容 |
|---|---|
| 書いたコードはそのまま動かない | まずコンパイルが必要 |
| javac は変換する命令 | ソースファイルをクラスファイルにする |
| classファイルが実行に関係する | java で実行するときに使われる |
| エラーは確認の合図 | 修正点を探す手がかりになる |
Javaのコンパイルは、プログラムを動かすための準備作業です。
地味に見えるかもしれませんが、この手順を理解しているかどうかで、今後の学習のしやすさが大きく変わります。
コードを入力したら、保存する。
保存したら、正しい場所へ移動する。
移動したら、javac Sample1.java でコンパイルする。
成功したら、Sample1.class が作られる。
そして、java Sample1 で実行する。
この一連の流れを身につけることが、Javaプログラムを自分の手で動かすための大切な一歩になります。
