Java入門|Javaプログラムの実行手順

書いたコードが動く瞬間が、Java学習のいちばん楽しい第一歩です。

Javaの学習では、コードを入力して保存し、さらにコンパイルまで終わると、いよいよプログラムを実行できるようになります。ここまで来ると、やっと自分で書いたプログラムが実際に動く場面を見ることができるので、とてもわくわくするところです。画面に文字が表示された瞬間に、Javaの学習がぐっと身近に感じられる人も多いと思います。

ただし、Javaのプログラムは、テキストエディタで書いたコードをそのまま動かすわけではありません。まずソースファイルを作成し、次にコンパイルしてクラスファイルを作り、そのあとで実行するという流れをたどります。今回のテーマである 実行 は、その一連の流れの最後の大切なステップです。

この記事では、クラスファイルができたあとに、どのようにプログラムを実行するのかを、基本から丁寧に説明していきます。java コマンドの使い方、クラス名の指定方法、画面に結果が表示される意味、インタプリタや Java仮想マシンの考え方、そしてこれまで学んだ 作成 → コンパイル → 実行 までの流れもあわせて整理していきます。Java学習の基本がしっかりつながるように、順番に見ていきましょう。

クラスファイルができたら実行できる

Javaプログラムは、ソースファイルを作成しただけではまだ動きません。
さらに、そのソースファイルをコンパイルしただけでも、まだ画面に結果は出ません。

コンパイルによってクラスファイルが作成されて、はじめて 実行する準備が整った 状態になります。
つまり、Javaの流れを整理すると次のようになります。

手順内容できあがるもの
1コードを入力して保存するソースファイル
2コンパイルするクラスファイル
3実行する画面に結果が表示される

このように、実行は最後の仕上げの段階です。
Java学習では、この順番をしっかり意識することがとても大切です。

プログラムを実行するためのしくみ

JDK でプログラムを実行するには、インタプリタ と呼ばれるソフトウェアを使います。
このインタプリタを起動するために使うコマンドが java です。

Javaでは、コンパイルで作成されたクラスファイルの内容を、インタプリタが読み取り、コンピュータに命令を実行させます。つまり、java コマンドは、クラスファイルの内容を実際に動かすための入口だと考えるとわかりやすいです。

ここで使われるインタプリタは、Java仮想マシン と呼ばれることもあります。
英語では Java Virtual Machine、略して JVM と表現されます。

実行時に登場する言葉

用語意味
javaプログラムを実行するためのコマンド
インタプリタバイトコードを解釈して実行するソフトウェア
Java仮想マシンJavaのプログラムを動かす仕組みの名前

最初は インタプリタ や Java仮想マシン という言葉が少し難しく感じるかもしれませんが、今は Javaのプログラムを動かす役目を持つもの くらいの理解で大丈夫です。

実行する前に確認しておきたいこと

プログラムを実行する前に、いくつか確認しておきたいポイントがあります。

実行前の確認事項

確認すること内容
クラスファイルができているかSample1.class が作成されているか
正しいディレクトリにいるかクラスファイルがある場所でコマンドを入力する
クラス名を正しく覚えているかSample1 のように大文字小文字も含めて確認する

Javaの実行では、クラスファイルがあるディレクトリでコマンドを入力するのが基本です。
また、クラス名の入力ミスがあると正しく実行できないので、大文字と小文字にも注意が必要です。

実際にプログラムを実行する

それでは、実際に Sample1 を実行する方法を見ていきましょう。

ファイル名:Sample1.java

class Sample1
{
    public static void main(String[] args)
    {
        System.out.println("はじめてのJavaコードです。");
    }
}

このプログラムをコンパイルすると、Sample1.class が作成されます。
そのあと、クラスファイルが作成されたディレクトリで、次のように入力します。

PS C:\Java\01> java Sample1

ここで大切なのは、java のあとに空白を1つ入れて、クラス名 Sample1 を入力することです。
このとき、.java や .class は付けません。入力するのはあくまで クラス名 です。

実行コマンドの形

要素内容
コマンドjava
空白1つ入れる
指定するものクラス名
今回の例Sample1

つまり、基本の形は次のとおりです。

java クラス名

今回なら、java Sample1 となります。

実行すると何が起こるか

コマンドを正しく入力して Enter キーを押すと、プログラムが実行され、画面に結果が表示されます。

PS C:\Java\01> java Sample1
はじめてのJavaコードです。

この表示を見ると、自分が入力したプログラムが実際に動いたことがわかります。
とても短いプログラムでも、画面に文字が表示される瞬間は、Java学習の中で大きな達成感を感じやすい場面です。

実行結果の意味

画面に表示されたもの意味
はじめてのJavaコードです。System.out.println で指定した文字列が表示された
再び入力待ちになるプログラムの実行が終わった

このように、実行の結果として画面にメッセージが表示されれば成功です。

実行時に気をつけたいポイント

Javaプログラムの実行では、いくつか間違えやすい点があります。
ここを早めに整理しておくと、実行時のミスを減らしやすくなります。

よくある注意点

注意点内容
クラス名を指定するファイル名ではなくクラス名を入力する
拡張子を付けないjava Sample1.java ではなく java Sample1
大文字小文字を間違えないSample1 と sample1 は別物
正しい場所で実行するクラスファイルのあるディレクトリで行う

とくに、コンパイルのときは javac Sample1.java と入力したので、実行でも .java を付けたくなることがあります。
でも、実行時は クラス名だけ を指定します。この違いはとても大切です。

コンパイルと実行の違いを整理しよう

ここで、コンパイルと実行の違いを表で整理しておくと、かなり頭の中がすっきりします。

項目コンパイル実行
使うコマンドjavacjava
入力するものソースファイル名クラス名
javac Sample1.javajava Sample1
結果クラスファイルが作成されるプログラムが動く

この表を見ると、同じ Java の学習の中でも、コンパイルと実行では役割がはっきり違うことがわかります。
Javaでは、この2つを使い分けることが基本です。

インタプリタの役割をもう少しやさしく見る

プログラムを実行するときに使うインタプリタは、バイトコードを解釈して、コンピュータに処理を行わせる役割を持っています。

少しやさしく言うと、コンパイルで作られたクラスファイルの内容を読み取り、
「この命令を表示する」
「この処理を実行する」
といった形で、実際の動作につなげてくれるのがインタプリタです。

役割の流れ

段階何が起こるか
ソースファイル作成人がコードを書く
コンパイルクラスファイルができる
実行インタプリタがクラスファイルを読み取り、動かす

この流れをイメージできると、Javaのプログラムがどのように動いているのかがかなり見えやすくなります。

この図は、まず Sample1.java というソースファイルをコンパイルして Sample1.class を作成し、そのあと java Sample1 を実行することで、画面に「 はじめてのJavaコードです。」 が表示される流れを表しています。

Javaでは、コードを書いたらすぐに動くのではなく、ソースファイルの作成、コンパイル、実行という段階を順番にたどります。図で流れを見ると、それぞれの段階がどのようにつながっているのかがとてもよくわかります。とくに、実行時には クラス名 を指定すること、そして結果が画面に表示されます。

ここまでの作成・実行手順を整理する

この章で学んだ Javaプログラムの作成から実行までの流れを、あらためて整理してみましょう。

Javaプログラムの基本手順

手順内容結果
1テキストエディタにJavaコードを入力するソースファイルを作成する
2コンパイラを起動してソースファイルをコンパイルするクラスファイルが作成される
3クラス名を指定してインタプリタを起動するプログラムが実行される

この流れは、これから先のサンプルコードでも何度も使う基本の形です。
最初のうちにこの手順をしっかり身につけておくと、第2章以降の学習もかなり進めやすくなります。

統合開発環境では一括でできることもある

なお、統合開発環境を使う場合は、プログラムの作成・コンパイル・実行をまとめて行えることがあります。
たとえば Eclipse のような環境では、ボタン操作だけで一連の流れを進められることもあります。

これはとても便利ですが、Javaの基本を理解するためには、まず 手で順番に行う流れ を知っておくことが大切です。
ソースファイルを作る、コンパイルする、実行する、という基本が頭に入っていれば、統合開発環境を使ったときにも、内部で何が行われているのかが理解しやすくなります。

図:統合開発環境 Eclipse

最新のJavaでは直接実行できる場合もある

最近のJavaでは、ここで紹介したような簡単なプログラムであれば、コンパイルを明示的に行わずに、java ソースファイル名 という形で直接実行できることもあります。

PS C:\Java\01> java Sample1.java
はじめてのJavaコードです。

たとえば、簡単なプログラムでは、ソースファイルをそのまま指定して実行できる場合があります。
ただし、これから学習が進んでいくと、もっと複雑なプログラムを扱うようになります。そのときには、コンパイルと実行を別々に考えることが必要になります。

そのため、最初の段階では、

  • ソースファイルを作る
  • コンパイルする
  • 実行する

という基本の流れをしっかり覚えておくのがとても大切です。

Java学習で実行体験が持つ意味

自分で入力したコードを実際に実行して、画面にメッセージが表示される体験は、Java学習の中でとても大きな意味を持ちます。
それは、単に文字を入力しただけのものが、実際に コンピュータに仕事をさせるプログラム へと変わった瞬間だからです。

今回の Sample1 はとてもシンプルなプログラムですが、ここには Java学習の基本がしっかり詰まっています。

  • コードを書く
  • 保存する
  • コンパイルする
  • 実行する
  • 結果を見る

この一連の流れを自分の手で経験することが、これから先の学習の大きな土台になります。
Javaのプログラムは、この基本手順の積み重ねで少しずつ理解が深まっていきます。だからこそ、まずはこの 実行までの流れ をしっかり体に覚えさせることがとても大切です。