Revised: Sep./21st/2002; Since: Dec./21st/2001
ほとんどあらゆるプログラム言語の解説本の伝統に従って、最初に次のプログラムを紹介します。
これは、実行すると標準出力に "Howdy, Java!" と返すだけの単純なものです。
Howdy.java:
class Howdy {
public static void main(String[] args) {
System.out.print("Howdy, Java!");
}
}
C:\java を作成C:\java に保存Howdy.java として保存してください。![]() |
図:C:\java\Howdy.java |
Windows のフォルダオプションで、「登録されているファイルの拡張子を表示しない」にチェックが入っていると、ファイル名が Howdy.java.txt になってしまうかもしれませんので注意してください。テキスト・エディタの設定によってもそうなってしまうかもしれません。
正しくソースファイルが保存できたらコマンドラインからコンパイルして実行します。Windows 95/98/Me のコマンドラインは「DOSプロンプト」、Windows NT/2000/XP のコマンドラインは「コマンド プロンプト」です。タスクバーの「スタート」メニューから「プログラム(P)」、「アクセサリ」を開いて、適当なコマンドラインを起動してください。頻繁に使うので、デスクトップやラウンチャにアイコンを登録すると良いでしょう。
![]() |
| 図:コマンド プロンプト |
![]() |
| 図:コマンド プロンプトの起動時のウィンドウ |
コマンドプロンプトは、起動時には C:\> と表示されます。その後ろにカーソルが点滅しているので、そこにコマンドを入力して実行します。このとき、 C:\> はプロンプト と呼ばれ、コマンド入力を待機している状態を示します。 C:\ はカレントディレクトリと呼ばれ、この場合は C ドライブの最上位階層のディレクトリに居ることになります。
次の例は、 Windows において、 Howdy.java を、ディレクトリ(フォルダ) C:\java に保存した場合の例です。
コマンドラインで cd C:\java または cd java と入力して Enter キー:
C:\> C:\>cd java C:\java>
cd はカレントディレクトリを移動するコマンドです。この例では、 C:\java に移動しています。 Howdy.java を他のディレクトリに保存した場合は、適宜書き換えてください。たとえば、 "C:\work" に保存したら、実行するコマンドは cd work になります。
続いて、 dir /B と入力して Enter キー:
C:\> C:\>cd java C:\java>dir /B Howdy.java C:\java>
dir はカレントディレクトリ中のファイルとサブディレクトリを表示するコマンドです。 dir /B とすると、ファイル名だけが表示されます。この例では、カレントディレクトリ C:\java のなかに、 Howdy.java が存在している事が確認できます。確認できない場合は、テキストエディタでの保存先と、カレントディレクトリが異なっています。
javac Howdy.java と入力して Enter キー:
C:\java>javac Howdy.java C:\java>
javac はソースコードをバイトコードにコンパイルするコマンドです。この例では、C:\java に存在する Howdy.java をコンパイルしています。成功していれば、このディレクトリに Howdy.class が作成されています。
javac が上記のように実行できない場合は、セットアップが間違っています。インストールガイドを参照して動作を確認してください。
dir /B と入力して Enter キー:
C:\java>dir /B Howdy.java Howdy.class C:\java>
ディレクトリを開いて Howdy.class が作成されたかを確認してください。これは、コンパイラによって生成され、 JavaVM のインタープリタが実行する対象であるバイトコードが書き出されたファイルです。
![]() |
図:C:\java |
バイトコードは JavaVM が実行可能なコードです。実行するには、 JavaVM のインタープリタ java に、実行するバイトコードが格納されているクラスファイルを渡します。
コマンドラインから java Howdy と入力して Enter キー:
C:\java>java Howdy Howdy, Java! C:\java>
1行目でインタープリタにクラスファイルの実行を依頼しています。ただし、拡張子 .class はつけていません。
2行目が実行結果です。確かに "Howdy, Java!" と出力されています。
3行目は、実行が終了して制御が帰ってきたところです。
以上の作業では、コンパイル、実行を行いました。ソースファイルを編集したら、コンパイルしてバイトコードのクラスファイルも作り直します。
javac ソースファイル.java | ソースファイルをコンパイルします |
|---|---|
java クラス名 | クラスファイルを実行します |
cd パス | カレントディレクトリを移動します |
dir /B | カレントディレクトリ中のファイル名を出力します |
コマンド java や javac の実行が成功しない場合は、セットアップや認識に誤りがあります。インストールガイドを参照して確認してください。
ソースコードを読んでみましょう:
Howdy.java:
class Howdy {
public static void main(String[] args) {
System.out.print("Howdy, Java!");
}
}
この例では、クラス Howdy に、メソッド main() を定義したことになります。クラスとメソッドの意味は後述します。ここでは言葉だけ覚えてください。
main() メソッドの中では、別のメソッド print() に対して、メッセージ "Howdy, Java!" が渡されています。結果と比べると、 print() メソッドは、渡されたメッセージを出力する働きをもつことが分かります。
メッセージの二重引用符の内側を適宜変更してみてください。ここでは、日本語も使えます。
例: System.out.print("こんにちは、Java!");
ソースファイルを変更したら、再コンパイルしてバイトコードも作り直します。
コンパイルのコマンドは javac Howdy.java で、実行のコマンドは java Howdy です。次に、実行結果を示します:
C:\java>javac Howdy.java C:\java>java Howdy こんにちは、Java! C:\java>
Java では、 main() メソッドを内側に持つクラスが、最初に実行されるクラスになります。今の場合は Howdy クラスがそれに当たります。 main() メソッドを内部に持つクラスは、ソースファイル名と大文字/小文字の区別も含めて同じ名前でなければなりません。
習慣的に、クラス名は大文字で始め、メソッド名は小文字で始めることになっています。このことによって、 Howdy, System はクラス名であり、 main, print がメソッド名であることが分かります。
Java では大文字と小文字を厳密に区別しますが、クラスは大文字で始める、メソッド、変数は小文字で始めるなどのことは、単なる convention (慣習)です。他にも、 Java では改行/空白の個数は任意のフリー・フォーマットの言語ですが、これも convention があります。このような convention に従うことで、他の人間が作ったコードでも読みやすくなります。これは、多人数での開発では開発効率の観点から非常にクリティカルな問題になります。
本コンテンツでは、必ずしも convention に従っている訳ではないことに注意してください。出来るだけコードは読みやすくなるように心掛けていますが、 Sun Microsystems が公開している Java Convention の文書を確認されるように強くお勧めします。