
Java道|Javaプログラムの実行手順と基本の流れ
Javaは、書いて終わりではなく、動かしてこそ身につく。
クラスファイルを実行する一歩が、Java修行の本当の始まりになる。
Javaの学習では、コードを入力して保存し、さらにコンパイルまで終わると、いよいよプログラムを実行できる段階に入ります。
ここまで来ると、自分で書いたJavaコードが実際に動く瞬間を確認できます。
画面にメッセージが表示されたとき、Javaの学習が一気に身近に感じられるはずです。
ただし、Javaプログラムは、テキストエディタで書いたソースファイルをそのまま動かすのが基本ではありません。まずソースファイルを作成し、次にコンパイルしてクラスファイルを作り、そのクラスファイルを実行します。つまり、Javaの基本は 作成 → コンパイル → 実行 という流れです。
鬼滅の刃の世界観にたとえるなら、Javaの実行は、修行で完成させた型を実際に放つ場面です。
| Javaの作業 | 鬼滅風のたとえ |
|---|---|
| ソースファイルを作る | 技の型を巻物に書く |
| コンパイルする | 型を実戦で使える技に鍛える |
| クラスファイルができる | 完成した技が準備される |
| 実行する | 技を実際に放つ |
| 結果が表示される | 技の効果を目で確認する |
Java学習で大切なのは、コードを書くだけで満足せず、最後に実行して結果を確認することです。
自分の書いたコードが画面に結果を出す体験は、これから学習を続けるうえで大きな自信になります。
クラスファイルができたら実行できる
Javaプログラムは、ソースファイルを作成しただけではまだ動きません。
さらに、ソースファイルをコンパイルしただけでも、まだ画面に結果は表示されません。
コンパイルによってクラスファイルが作られて、はじめて実行の準備が整います。
流れを整理すると、次のようになります。
| 手順 | 内容 | できあがるもの・起こること |
|---|---|---|
| 1 | コードを入力して保存する | ソースファイルができる |
| 2 | コンパイルする | クラスファイルができる |
| 3 | 実行する | 画面に結果が表示される |
今回使うファイルは、次の Sample1.java です。
ファイル名:Sample1.java
class Sample1
{
public static void main(String[] args)
{
// 最初の修行メッセージを表示する
System.out.println("Java修行の第一歩です。");
}
}このファイルをコンパイルすると、Sample1.class が作成されます。
そして、その Sample1.class をもとにプログラムを実行します。
鬼滅風にたとえるなら、Sample1.java は技の型を書いた巻物、Sample1.class は鍛錬によって実戦で使える状態になった技です。
実行とは、その完成した技を実際に放つことです。
プログラムを実行するためのしくみ
JDKでJavaプログラムを実行するときは、java という命令を使います。
この java は、コンパイル後に作られたクラスファイルを読み取り、プログラムを動かすための命令です。
Javaでは、コンパイルによって作られたバイトコードを、インタプリタが読み取り、実際の動作につなげます。
この実行のしくみは、Java仮想マシン、つまり JVM と呼ばれることもあります。
| 用語 | 意味 |
|---|---|
| java | Javaプログラムを実行するための命令 |
| インタプリタ | バイトコードを解釈して実行するソフトウェア |
| Java仮想マシン | Javaプログラムを動かすための仕組み |
| JVM | Java Virtual Machine の略 |
最初は、インタプリタやJava仮想マシンという言葉が少し難しく感じるかもしれません。
今の段階では、次のように考えれば大丈夫です。
| 難しい言葉 | まず押さえるイメージ |
|---|---|
| インタプリタ | クラスファイルを読み取って動かす役 |
| Java仮想マシン | Javaを実行するための舞台 |
| java命令 | その舞台を起動する合図 |
鬼滅風にたとえるなら、インタプリタは完成した技を実戦で発動させる案内役です。
クラスファイルという完成した技があっても、それを放つ仕組みがなければ画面に結果は出ません。
実行する前に確認しておきたいこと
プログラムを実行する前に、いくつか確認しておきたいポイントがあります。
| 確認すること | 内容 |
|---|---|
| クラスファイルができているか | Sample1.class が作成されているか |
| 正しいディレクトリにいるか | クラスファイルがある場所で命令を入力する |
| クラス名を正しく覚えているか | Sample1 の大文字小文字を確認する |
| コンパイルが成功しているか | javac Sample1.java のあとにエラーが出ていないか |
Javaの実行では、クラスファイルがあるディレクトリで命令を入力するのが基本です。
たとえば、Sample1.class が C:\Java\01 にあるなら、PowerShellでもその場所に移動してから実行します。
cd \Java\01このように移動してから、実行命令を入力します。
鬼滅風にたとえるなら、完成した技が置いてある修行場へ移動してから技を放つようなものです。
別の場所にいるままでは、実行対象のクラスファイルをうまく見つけられないことがあります。
実際にプログラムを実行する
Sample1.java をコンパイルして Sample1.class が作成されたら、次の命令で実行します。
java Sample1PowerShellでの実行例は次のようになります。
PS C:\Java\01> java Sample1
Java修行の第一歩です。ここで大切なのは、java のあとに半角スペースを1つ入れて、クラス名 Sample1 を入力することです。
| 要素 | 内容 |
|---|---|
| コマンド | java |
| 空白 | java のあとに1つ入れる |
| 指定するもの | クラス名 |
| 今回の例 | Sample1 |
つまり、基本の形は次の通りです。
java クラス名今回なら、次の形になります。
java Sample1実行時に拡張子を付けない
Javaの実行で特に注意したいのは、実行時には .java や .class を付けない という点です。
コンパイルでは、次のようにソースファイル名を指定しました。
javac Sample1.javaしかし、実行では次のようにクラス名だけを指定します。
java Sample1| 場面 | 指定するもの | 正しい入力 |
|---|---|---|
| コンパイル | ソースファイル名 | javac Sample1.java |
| 実行 | クラス名 | java Sample1 |
次のように入力してしまうと、うまく実行できない原因になります。
| 間違いやすい入力 | 理由 |
|---|---|
| java Sample1.java | 実行時にソースファイル名を指定している |
| java Sample1.class | 実行時にクラスファイル名をそのまま指定している |
| java sample1 | 大文字小文字が違う |
Javaでは、大文字と小文字が区別されます。
Sample1 と sample1 は別の名前として扱われます。
鬼滅風にたとえるなら、技を放つときには、巻物のファイル名ではなく、技の名前を正しく呼ぶ必要があります。
名前を少しでも間違えると、別の技として扱われてしまいます。
実行すると何が起こるか
java Sample1 を実行すると、インタプリタが Sample1.class を読み取り、プログラムを動かします。
今回のプログラムには、次の命令が書かれています。
System.out.println("Java修行の第一歩です。");そのため、実行すると画面に次のように表示されます。
Java修行の第一歩です。| 画面に表示されたもの | 意味 |
|---|---|
| Java修行の第一歩です。 | System.out.println で指定した文字列が表示された |
| 再び入力待ちになる | プログラムの実行が終わった |
画面にメッセージが表示されれば、プログラムは正しく実行できています。
短いプログラムでも、自分が書いたコードが実際に画面へ結果を出す体験はとても大切です。
Java学習の最初の成功体験として、しっかり味わっておきたい場面です。
実行時に気をつけたいポイント
Javaプログラムの実行では、いくつか間違えやすい点があります。
| 注意点 | 内容 |
|---|---|
| クラス名を指定する | ファイル名ではなくクラス名を入力する |
| 拡張子を付けない | java Sample1.java や java Sample1.class ではなく java Sample1 |
| 大文字小文字を間違えない | Sample1 と sample1 は別物 |
| 正しい場所で実行する | Sample1.class があるディレクトリで行う |
| コンパイル後に実行する | Sample1.class が作られている必要がある |
特に、コンパイルでは javac Sample1.java と入力するため、実行でも .java を付けたくなることがあります。
しかし、実行時はクラス名だけを指定します。
この違いは、Java学習の最初にしっかり押さえておきたい重要ポイントです。
コンパイルと実行の違いを整理しよう
コンパイルと実行は、どちらもJava学習でよく使う操作ですが、役割はまったく違います。
| 項目 | コンパイル | 実行 |
|---|---|---|
| 使う命令 | javac | java |
| 入力するもの | ソースファイル名 | クラス名 |
| 例 | javac Sample1.java | java Sample1 |
| 結果 | Sample1.class が作られる | プログラムが動く |
| 役割 | 実行準備 | 実際に動かす |
この表を見ると、コンパイルと実行はセットで使うものですが、それぞれ役割が違うことが分かります。
鬼滅風にたとえるなら、コンパイルは技を鍛える段階、実行は技を放つ段階です。
| Javaの操作 | 鬼滅風のイメージ |
|---|---|
| javac Sample1.java | 巻物の型を鍛える |
| Sample1.class ができる | 実戦用の技が完成する |
| java Sample1 | 完成した技を放つ |
Javaでは、この2つを使い分けることが基本です。
インタプリタの役割をもう少しやさしく見る
インタプリタは、コンパイルで作られたクラスファイルを読み取り、実際の処理につなげる役割を持っています。
もう少しやさしく言うと、インタプリタは次のような働きをします。
| インタプリタが行うこと | 内容 |
|---|---|
| クラスファイルを読む | Sample1.class の内容を確認する |
| バイトコードを解釈する | Javaの実行用の形式を読み取る |
| 処理を進める | 画面表示などの動作につなげる |
| 実行を終える | プログラムが終わると入力待ちに戻る |
Javaの実行では、Sample1.class の中にあるバイトコードをインタプリタが読み取ります。
そして、System.out.println の処理を実行し、画面に Java修行の第一歩です。 と表示します。
流れを整理すると、次のようになります。
| 段階 | 何が起こるか |
|---|---|
| ソースファイル作成 | 人がJavaコードを書く |
| コンパイル | Sample1.class ができる |
| 実行 | インタプリタが Sample1.class を読み取る |
| 結果表示 | 画面にメッセージが表示される |
この流れをイメージできると、Javaプログラムがどのように動いているのかが見えやすくなります。
図:Javaプログラムの実行手順
↓クリックすると拡大表示されます。

この図は、Sample1.java を作成し、javac Sample1.java でコンパイルして Sample1.class を作り、最後に java Sample1 で実行する流れを表しています。
この図から分かることは、Javaプログラムはコードを書いたらすぐ動くのではなく、ソースファイルの作成、コンパイル、実行という段階を順番に進むということです。
また、コンパイル時には Sample1.java を指定し、実行時には Sample1 を指定することも分かります。
この違いを図で確認しておくと、PowerShellで命令を入力するときに迷いにくくなります。
作成・コンパイル・実行の基本手順
Javaプログラムの基本手順を、あらためて整理しておきましょう。
| 手順 | 内容 | 結果 |
|---|---|---|
| 1 | テキストエディタにJavaコードを入力する | Sample1.java を作成する |
| 2 | コンパイラでソースファイルをコンパイルする | Sample1.class が作成される |
| 3 | クラス名を指定して実行する | プログラムが実行される |
実際の命令の流れは次の通りです。
cd \Java\01
javac Sample1.java
java Sample1| 命令 | 役割 |
|---|---|
| cd \Java\01 | Sample1.java や Sample1.class がある場所へ移動する |
| javac Sample1.java | Sample1.java をコンパイルする |
| java Sample1 | Sample1 を実行する |
この流れは、これから先のJava学習でも何度も使います。
Javaのプログラムが長くなっても、内容が少し難しくなっても、基本は同じです。
まず書く。
次にコンパイルする。
最後に実行する。
この基本の型を身につけることが、Java学習の土台になります。
統合開発環境では一括でできることもある
Javaの開発では、Eclipseのような統合開発環境を使うこともあります。
統合開発環境では、プログラムの作成、コンパイル、実行をボタン操作でまとめて行えることがあります。
| 方法 | 特徴 |
|---|---|
| PowerShellで手順を入力する | 内部の流れを理解しやすい |
| 統合開発環境を使う | 作成・コンパイル・実行を効率よく行える |
| Eclipseなどを使う | ボタン操作で実行できる場合がある |
統合開発環境はとても便利です。
しかし、Javaの基本を理解するためには、まず PowerShellで手順を分けて行う流れを知っておくことが大切です。
なぜなら、統合開発環境が自動で行っていることも、内部では次の流れをたどっているからです。
ソースファイルを作る
↓
コンパイルする
↓
クラスファイルを作る
↓
実行する↓クリックすると拡大表示されます。

鬼滅風にたとえるなら、統合開発環境は補助道具がそろった修行場です。
便利な道具がそろっていますが、基本の型を知らないまま使うより、作成、コンパイル、実行の意味を理解してから使う方が、学習が深まりやすくなります。
図:PowerShellと統合開発環境の違い
↓クリックすると拡大表示されます。

この図は、PowerShellで命令を1つずつ入力する方法と、統合開発環境で実行する方法の違いを表しています。
この図から分かることは、PowerShellでは作成、コンパイル、実行の流れを自分で確認しながら学べるということです。
また、統合開発環境では、ボタン操作によって作成、コンパイル、実行を効率よく進められることも分かります。
ただし、内部で何が行われているのかを理解するためには、まずPowerShellで基本の流れを学ぶことが役立ちます。
最新のJavaでは直接実行できる場合もある
Javaの比較的新しい環境では、簡単なプログラムであれば、明示的にコンパイルを行わずに、ソースファイルを指定して直接実行できる場合があります。
たとえば、次のような形です。
java Sample1.javaこの場合、環境によっては次のように実行結果が表示されます。
PS C:\Java\01> java Sample1.java
Java修行の第一歩です。ただし、Java学習の最初では、次の基本の流れをしっかり覚えておくことが大切です。
ソースファイルを作る
↓
コンパイルする
↓
実行する↓クリックすると拡大表示されます。

直接実行できる場合があっても、Javaの基本構造を理解するには、コンパイルと実行を分けて考える方が分かりやすいです。
特に、学習が進むと複数のファイルを扱ったり、クラス同士の関係を考えたりする場面が出てきます。
そのときに、ソースファイル、クラスファイル、コンパイル、実行の関係を理解していると、つまずきにくくなります。
実行できないときに確認したいこと
java Sample1 を入力しても実行できない場合は、あわてずに順番に確認しましょう。
| 状況 | 確認すること |
|---|---|
| Sample1 が見つからない | Sample1.class があるか確認する |
| クラス名のエラーが出る | Sample1 の大文字小文字が正しいか確認する |
| 実行結果が表示されない | mainメソッドや表示命令を確認する |
| 違う場所で実行している | cd \Java\01 で保存先へ移動しているか確認する |
| .java や .class を付けている | java Sample1 と入力しているか確認する |
特に、初心者のうちは次の3つをよく確認するとよいです。
| 確認ポイント | 理由 |
|---|---|
| Sample1.class があるか | コンパイルが終わっていないと実行できない |
| java Sample1 と入力しているか | 実行時はクラス名だけを指定する |
| C:\Java\01 にいるか | クラスファイルの場所で実行する必要がある |
エラーは失敗ではなく、確認する場所を教えてくれる合図です。
鬼滅風に言えば、技がうまく出なかったときに、構えや呼吸を見直すようなものです。
Java学習で実行体験が持つ意味
自分で入力したコードを実行して、画面にメッセージが表示される体験は、Java学習の中でとても大きな意味を持ちます。
それは、ただ文字として保存していたものが、コンピュータに仕事をさせるプログラムへ変わった瞬間だからです。
今回の Sample1 はとてもシンプルなプログラムです。
しかし、ここにはJava学習の基本がしっかり詰まっています。
| 作業 | 身につくこと |
|---|---|
| コードを書く | Javaの文法に触れる |
| 保存する | ソースファイルを作る感覚が身につく |
| コンパイルする | classファイルが作られる流れが分かる |
| 実行する | プログラムが動く体験ができる |
| 結果を見る | 書いた処理と表示結果がつながる |
Javaの学習は、この基本手順の積み重ねです。
コードを書く。
保存する。
コンパイルする。
実行する。
結果を見る。
この一連の流れを自分の手で経験することで、Javaプログラムのしくみが少しずつ体に入っていきます。
鬼滅風に言えば、最初の型を自分の手で放てた瞬間です。
まだ小さな一歩かもしれませんが、その一歩がこれからのJava修行の土台になります。
