
Java超|Javaの基本 作成・コンパイル・実行
書く、鍛える、放つ。Javaプログラムは、Sample.java を作成し、javac で鍛え、java で結果を確かめることで身についていく。
Javaの学習では、文法を覚えることも大切ですが、それと同じくらい大切なのが、自分でプログラムを書いて、実際に動かしてみることです。
説明を読んだり、サンプルを眺めたりするだけでは、Javaの動きはなかなか実感しにくいものです。けれど、自分で入力したプログラムがPowerShell上で動き、画面に文字が表示された瞬間、Javaの仕組みが少しずつ体にしみ込んでいきます。
Javaプログラムは、基本的に次の3ステップで動かします。この記事では、Sample.java を例にして、作成、コンパイル、実行の流れを順番に解説します。
| ステップ | 内容 | 役割 |
|---|---|---|
| 1 | ソースファイルを作成する | Javaのコードを書く |
| 2 | コンパイルする | コードを実行できる形に変換する |
| 3 | 実行する | プログラムを動かして結果を確認する |
ドラゴンボール風にたとえるなら、Javaの学習は戦士の修行に似ています。
いきなり大技を放とうとしても、基本の型が身についていなければうまくいきません。まず技の型を書き、次にその型を実戦で使える形に鍛え、最後に技を放って結果を確かめます。
| Javaの流れ | ドラゴンボール風のたとえ |
|---|---|
| ソースファイルを書く | 技の型を巻物に書く |
| コンパイルする | 型を実戦で使える技に鍛える |
| 実行する | 完成した技を放つ |
Javaの世界では、コードを書くことが修行の始まりです。
コンパイルは、書いたコードを実行できる形に鍛える工程です。
実行は、完成したプログラムを動かして結果を確かめる場面です。
この3ステップは、Java学習で何度もくり返す基本の型になります。
Javaプログラムはどのように動くのか
Javaのプログラムは、書いたコードをそのまま実行するわけではありません。
まず、人が読める形で書いたJavaのコードを ソースファイル として保存します。今回の例では、ファイル名は Sample.java です。
次に、そのソースファイルを javac でコンパイルします。
コンパイルが成功すると、Sample.class というファイルが作られます。
最後に java を使って、そのプログラムを実行します。
| 順番 | 操作 | 作られるもの・起こること |
|---|---|---|
| 1 | Sample.java を作る | Javaのソースファイルができる |
| 2 | javac Sample.java を実行する | Sample.class が作られる |
| 3 | java Sample を実行する | 画面に結果が表示される |
最初は、なぜ javac と java の2つを使うのかが少し不思議に感じるかもしれません。
でも、この2つは役割が違います。
| 命令 | 役割 |
|---|---|
| javac | Javaのソースファイルをコンパイルする |
| java | コンパイル後のプログラムを実行する |
ドラゴンボール風にたとえるなら、javac は技の型を鍛える修行装置です。
java は、鍛えた技を実戦で放つ操作です。
巻物に技の型を書いただけでは、まだ戦えません。その型を鍛え、実際に使える状態にしてから、はじめて技として放つことができます。
Javaでも同じです。
Sample.java を作っただけでは、まだ実行の準備は終わっていません。javac Sample.java でコンパイルし、Sample.class を作ってから、java Sample で実行します。
図:Javaプログラム作成から実行までの3ステップ

この図が示していること
この図では、Javaプログラムが 書く → コンパイルする → 実行する という順番で動くことを表しています。
Sample.java は、人が書くソースファイルです。
javac Sample.java を実行すると、Javaが実行に使う Sample.class が作られます。
そのあと、java Sample を実行すると、プログラムの結果が画面に表示されます。
特に大切なのは、コンパイル時には Sample.java を指定し、実行時には Sample を指定するという違いです。
まずはソースファイルを作成する
最初に行うのは、Javaのコードを入力して保存することです。
メモ帳やテキストエディタを開き、Javaのプログラムを書きます。
今回は、画面に文字を表示するシンプルなプログラムを使います。
ファイル名:Sample.java
class Sample
{
public static void main(String[] args)
{
System.out.println("Javaの気、はじめの一歩!");
}
}このプログラムを入力したら、ファイル名を Sample.java として保存します。
ここで大切なのは、ファイル名を Sample.java にすることです。
今回のクラス名は Sample なので、ファイル名も Sample.java にします。
| 項目 | 今回の例 |
|---|---|
| クラス名 | Sample |
| ソースファイル名 | Sample.java |
| コンパイル後のファイル名 | Sample.class |
Javaでは、クラス名とファイル名の関係を意識することがとても大切です。
特に学習の初期段階では、ファイル名の違いが原因でコンパイルや実行時に混乱しやすくなります。
ソースファイルとは何か
ソースファイルとは、プログラムのもとになるファイルです。
人が読める形で書かれたJavaのコードが保存されています。今回であれば、Sample.java がソースファイルです。
ドラゴンボール風にたとえると、ソースファイルは 技の型を書いた巻物 のようなものです。
| Javaの用語 | ドラゴンボール風のたとえ |
|---|---|
| ソースファイル | 技の型を書いた巻物 |
| Javaコード | 技の動きや手順 |
| クラス | 技をまとめる型の名前 |
| mainメソッド | 技を開始する合図 |
Sample.java の中には、画面に Javaの気、はじめの一歩! と表示するための命令が書かれています。
ただし、この段階では、コンピュータが実行できる準備はまだ整っていません。
人間にとって読みやすい形で書かれているだけなので、次にコンパイルという作業が必要になります。
サンプルプログラムの基本構造
先ほどのプログラムを、部分ごとに見てみましょう。
class Sample
{
public static void main(String[] args)
{
System.out.println("Javaの気、はじめの一歩!");
}
}| 部分 | 役割 |
|---|---|
| class Sample | Sample という名前のクラスを定義している |
| public static void main(String[] args) | プログラムの開始位置を表す |
| System.out.println(...) | 文字を画面に表示する |
| { } | 処理のまとまりを表す |
最初の段階では、すべてを完璧に理解しなくても大丈夫です。
大切なのは、Javaプログラムには基本の形があり、mainメソッドの中に実行したい処理を書くという感覚をつかむことです。
特に今回注目したいのは、次の1行です。
System.out.println("Javaの気、はじめの一歩!");この行によって、実行時に画面へ文字が表示されます。
Java学習の最初は、このように 書いた内容が画面に出る という体験がとても大切です。
ドラゴンボール風に言えば、まだ大きな必殺技ではありませんが、自分の気を小さく放って、きちんと反応が返ってくることを確認するようなものです。
PowerShellを起動して保存したディレクトリへ移動する
ソースファイルを保存したら、次はPowerShellを起動します。
そして、Sample.java を保存したディレクトリへ移動します。
今回の保存先は C:\Java\01 とします。
入力する命令は次の通りです。
cd \Java\01実行例です。
PS C:\> cd \Java\01
PS C:\Java\01>表示が PS C:\Java\01> になれば、現在のディレクトリが C:\Java\01 に変わったことが分かります。
| 表示 | 意味 |
|---|---|
| PS C:> | Cドライブ直下にいる |
| cd \Java\01 | C:\Java\01 に移動する |
| PS C:\Java\01> | C:\Java\01 に移動できた |
Javaのコンパイルや実行では、今いる場所がとても重要です。
Sample.java が C:\Java\01 にあるなら、PowerShellでも C:\Java\01 に移動してから作業するのが基本です。
なぜディレクトリ移動が必要なのか
PowerShellでは、現在いる場所を基準にしてファイルを探します。
そのため、Sample.java が保存されている場所に移動しないまま javac Sample.java と入力すると、PowerShellはそのファイルを見つけられないことがあります。
| 操作 | 理由 |
|---|---|
| ソースファイルのある場所へ移動する | コンパイル対象を正しく見つけるため |
| 同じ場所でコンパイルする | Sample.class が確認しやすくなるため |
| 同じ場所で実行する | java Sample を実行しやすくするため |
ドラゴンボール風にたとえると、技の巻物がある修行部屋に移動してから鍛錬を始めるようなものです。
巻物が C:\Java\01 にあるのに、自分が C:\ にいるままだと、手元に巻物がありません。
だから、まず cd \Java\01 で修行部屋へ移動します。
この 作業したいファイルがある場所へ移動する という感覚は、Java学習でとても重要です。
コンパイルする
ディレクトリ移動ができたら、次にコンパイルを行います。
コンパイルには javac を使います。
今回のソースファイルは Sample.java なので、次のように入力します。
javac Sample.java実行例です。
PS C:\Java\01> javac Sample.java
PS C:\Java\01>PowerShellに特に何も表示されず、再び PS C:\Java\01> が表示された場合は、コンパイル成功と考えて大丈夫です。
| 入力ファイル | 実行する命令 | 作成されるファイル |
|---|---|---|
| Sample.java | javac Sample.java | Sample.class |
コンパイルが成功すると、同じディレクトリに Sample.class が作成されます。
コンパイルとは何か
コンパイルとは、人が書いたJavaのコードを、実行のための形式に変換する作業です。
Javaでは、Sample.java をそのまま実行するのではありません。
まず javac Sample.java によって、Sample.class というファイルを作ります。
| ファイル | 役割 |
|---|---|
| Sample.java | 人が書くソースファイル |
| Sample.class | 実行のために変換されたファイル |
ドラゴンボール風にたとえるなら、Sample.java は技の型を書いた巻物です。
そして Sample.class は、鍛えられて実戦で使えるようになった技です。
| Javaの作業 | ドラゴンボール風のたとえ |
|---|---|
| Sample.java を書く | 技の型を巻物に記す |
| javac Sample.java | 修行装置で技を鍛える |
| Sample.class ができる | 実戦で使える技になる |
この変換作業があるからこそ、Javaでは javac という命令を使います。
何も表示されないのは成功なのか
javac Sample.java を実行したあと、PowerShellに何も表示されないことがあります。
初心者のうちは、何も出ないと失敗したのかなと不安になるかもしれません。
でも、javac はエラーがなければ静かに終了することが多いです。そのため、エラーメッセージが表示されず、元の入力待ち状態に戻れば、コンパイルは成功していると考えて大丈夫です。
| PowerShellの表示 | 状態 |
|---|---|
| 何も表示されず入力待ちに戻る | コンパイル成功 |
| エラーメッセージが出る | 文法ミスやファイル名の問題がある |
| ファイルが見つからないと表示される | ディレクトリやファイル名を確認する |
ドラゴンボール風に言えば、鍛錬が静かに完了した状態です。
失敗していれば、修行装置から警告が出るようにエラーが表示されます。何も言われず入力待ちに戻ったなら、ひとまず技は完成したと考えましょう。
図:Sample.java が Sample.class になる流れ

この図が示していること
この図では、Sample.java を javac Sample.java でコンパイルすると、Sample.class が作成される流れを表しています。
Sample.java は人が編集するファイルです。
Sample.class はJavaが実行に使うファイルです。
コードを変更した場合は、Sample.java を保存したあと、もう一度 javac Sample.java を実行して Sample.class を作り直す必要があります。
classファイルが作成される意味
コンパイルが終わると、Sample.class というファイルができます。
このファイルは、Javaプログラムを実行するために使われるファイルです。
| 種類 | ファイル名 | 説明 |
|---|---|---|
| ソースファイル | Sample.java | 人が編集するファイル |
| クラスファイル | Sample.class | Javaが実行に使うファイル |
ここで大切なのは、編集するのは Sample.java、実行のもとになるのは Sample.class という違いです。
Java学習では、プログラムを直したいときは Sample.java を編集します。
そのあと、もう一度 javac Sample.java でコンパイルします。
そして java Sample で実行します。
つまり、コードを修正したら、再コンパイルが必要です。
| 作業 | 必要な操作 |
|---|---|
| コードを書く | Sample.java を編集する |
| コードを変更する | Sample.java を保存する |
| 変更を反映する | javac Sample.java をもう一度実行する |
| 結果を確認する | java Sample を実行する |
この流れを覚えておくと、あとでプログラムを修正するときにも迷いにくくなります。
ドラゴンボール風に言えば、技の型を書き直したら、もう一度鍛え直す必要があるということです。
巻物だけ書き換えても、実戦で使う技が古いままでは、変更した内容は反映されません。
インタプリタを起動してプログラムを実行する
コンパイルが終わったら、いよいよプログラムを実行します。
実行には java を使います。
ここで注意したいのは、実行するときはファイル名ではなく クラス名 を指定することです。
今回のクラス名は Sample なので、次のように入力します。
java Sample実行例です。
PS C:\Java\01> java Sample
Javaの気、はじめの一歩!これで、プログラムが実行され、画面に Javaの気、はじめの一歩! と表示されました。
| 手順 | 入力 |
|---|---|
| コンパイル | javac Sample.java |
| 実行 | java Sample |
コンパイル時には Sample.java と入力します。
実行時には Sample と入力します。
ここはとても大切です。
実行時に拡張子を書かない理由
実行するときに java Sample.class と入力したくなるかもしれません。
しかし、Javaの実行では、拡張子は書きません。
指定するのはクラス名です。
| 場面 | 入力するもの | 例 |
|---|---|---|
| コンパイル | ソースファイル名 | javac Sample.java |
| 実行 | クラス名 | java Sample |
java は、指定されたクラス名をもとに、対応する class ファイルを探して実行します。
そのため、Sample.class を実行したい場合でも、入力するのは java Sample です。
ドラゴンボール風にたとえると、技を放つときに完成品ファイルの名前を読むのではなく、技の型の名前を呼ぶようなものです。
| Javaの動作 | ドラゴンボール風のたとえ |
|---|---|
| javac Sample.java | 巻物を鍛えて技にする |
| java Sample | 技の名前を呼んで放つ |
| java Sample.class と書かない | 完成品ファイル名ではなく、型の名前を指定する |
この違いは最初につまずきやすいですが、何度も使ううちに自然に慣れていきます。
一連の流れを確認する
ここまでの流れを整理すると、次のようになります。
| 手順 | 操作内容 | 入力例 |
|---|---|---|
| 1 | ソースファイルを作成する | Sample.java を保存する |
| 2 | 保存先ディレクトリへ移動する | cd \Java\01 |
| 3 | コンパイルする | javac Sample.java |
| 4 | 実行する | java Sample |

Java学習では、この流れを基本形として何度も使います。
特に大切なのは、次の対応関係です。
| 名前 | 役割 |
|---|---|
| Sample | クラス名 |
| Sample.java | ソースファイル名 |
| Sample.class | コンパイル後に作られるファイル |
この3つはよく似ていますが、役割が違います。
Javaの基本手順を身につけるには、コードの中身だけでなく、ファイル名、コンパイル、実行の関係もセットで理解することが大切です。
よく混同しやすいポイント
Javaの初学者がつまずきやすいポイントを整理しておきましょう。
ファイル名とクラス名の違い
| 項目 | 今回の例 | 役割 |
|---|---|---|
| クラス名 | Sample | プログラム内で定義した名前 |
| ソースファイル名 | Sample.java | 人が書いて保存するファイル |
| クラスファイル名 | Sample.class | コンパイル後に作られるファイル |
この3つは似ていますが、役割は違います。
特に、実行時には Sample.class ではなく Sample を指定する点に注意しましょう。
javac と java の違い
| 命令 | 役割 | 例 |
|---|---|---|
| javac | コンパイルする | javac Sample.java |
| java | 実行する | java Sample |
javac は、ソースファイルをクラスファイルに変換する命令です。
java は、コンパイル後のプログラムを実行する命令です。
この2つを逆にすると、正しく動きません。
コンパイル時と実行時で入力が違う
| 場面 | 入力する内容 | 正しい例 |
|---|---|---|
| コンパイル | ソースファイル名 | javac Sample.java |
| 実行 | クラス名 | java Sample |
コンパイルでは .java を付けます。
実行では .java も .class も付けません。
ここはJava学習の最初にとても重要なポイントです。
図:ファイル名と命令の関係

この図が示していること
この図では、クラス名 Sample、ソースファイル Sample.java、コンパイル後の Sample.class、そして実行命令 java Sample の関係を整理しています。
javac Sample.java では、ソースファイル名を指定します。
一方、java Sample では、クラス名を指定します。
実行時に java Sample.class と書かない点も大切です。このルールを最初に押さえておくと、Java学習のつまずきをかなり減らせます。
エラーが出たときに確認したいこと
Javaを学び始めたばかりのころは、コンパイルや実行でエラーが出ることがあります。
でも、エラーが出ること自体は悪いことではありません。
むしろ、どこを直せばよいかを教えてくれる大切な合図です。
よくある確認ポイントを整理しておきます。
| 状況 | 確認すること |
|---|---|
| Sample.java が見つからない | C:\Java\01 に移動しているか |
| コンパイルエラーが出る | コードの入力ミスがないか |
| java Sample で実行できない | javac Sample.java を先に実行したか |
| クラスが見つからない | 実行時に Sample と入力しているか |
| 表示結果が違う | System.out.println の文字列を確認する |
ドラゴンボール風にたとえるなら、エラーは修行中に師匠からもらう指摘です。
失敗ではなく、次に直す場所を教えてくれるものです。
大切なのは、あわてずに次の順番で確認することです。
| 確認順 | 内容 |
|---|---|
| 1 | 正しいディレクトリにいるか |
| 2 | ファイル名が Sample.java になっているか |
| 3 | クラス名が Sample になっているか |
| 4 | javac Sample.java を実行したか |
| 5 | java Sample と入力しているか |
このように順番に確認すれば、どこで問題が起きているのか見つけやすくなります。
なぜこの手順を身につけることが大切なのか
Java学習では、文法だけを読んで理解したつもりになるよりも、実際に手を動かすことがとても大切です。
コードを書く。
保存する。
PowerShellで移動する。
コンパイルする。
実行する。
結果を見る。
この流れをくり返すことで、Javaプログラムの扱い方が自然と身についていきます。
| 学習動作 | 身につく力 |
|---|---|
| コードを書く | Javaの文法に慣れる |
| 保存する | ファイル管理に慣れる |
| cdで移動する | 作業場所を意識できる |
| javacでコンパイルする | ソースからclassが作られる流れを理解できる |
| javaで実行する | プログラムの結果を確認できる |
最初のうちは、PowerShellで命令を入力する作業が少し面倒に感じるかもしれません。
しかし、この基本がしっかりしていると、あとから複雑なプログラムを学ぶときにも安心です。
特に、プログラムがうまく動かないときに、どの段階で問題が起きているのかを考えられるようになります。
| 問題が起きる段階 | 例 |
|---|---|
| 保存 | ファイル名が違う |
| 移動 | 違うディレクトリにいる |
| コンパイル | 文法ミスがある |
| 実行 | クラス名の指定が違う |
Javaの力を伸ばすには、ただ成功するだけでなく、うまくいかないときに原因を探せることも大切です。
ドラゴンボール風に言えば、技が出なかったときに、気の練り方が悪いのか、型が間違っているのか、立っている場所が違うのかを見分ける力です。
Java学習の最初の成功体験として大切な手順
画面に Javaの気、はじめの一歩! と表示されるだけの小さなプログラムでも、自分で書いたコードが実際に動く体験はとても大きな意味があります。
これは、Java学習における最初の成功体験です。
ドラゴンボール風にたとえるなら、初めて自分の気を形にして放てた瞬間です。
まだ大技ではありません。
けれども、確かに自分の手で技を出せたという実感があります。
Javaでは、次の流れを最初に身につけることが大切です。
| 基本動作 | 意味 |
|---|---|
| 書く | Sample.java を作る |
| 鍛える | javac Sample.java でコンパイルする |
| 放つ | java Sample で実行する |
この3ステップは、これからどんなJavaプログラムを書くときにも土台になります。
プログラムが長くなっても、学ぶ内容が難しくなっても、基本は同じです。
まずソースファイルを作る。
次にコンパイルする。
最後に実行する。
この流れをしっかり身につけておけば、Javaの学習はぐっと進めやすくなります。
