Java 入門

ホーム > コンパイルとプログラムの実行 > 簡単な Java プログラムのコンパイルと実行

簡単な Java プログラムのコンパイルと実行

Java でアプリケーションを開発するときには、NetBeans や Eclipse などの開発環境が利用される場合が多いです。

こうした統合開発環境は「開発に欠かせない」といっても過言ではないくらい便利です。

しかし、そうした統合環境は時として、裏で実際に Java コンパイラがどのように動いているのか、素の Java が何を必要としているのか覆い隠してしまいます。

このために最初から統合開発環境ばかり利用していると、Java コンパイラでどのようにプログラムをコンパイルしていいかわからない、ということになりかねません。

ここでは簡単な Java プログラムをテキストエディタとコンパイラから作成して、コンパイルはどのように行なうのか、どのように実行するのか体験してみたいと思います。

環境は Windows 7 を利用しています。

javac によるコンパイル

Java コンパイラは javac.exe です。これは JDK をインストールすると bin ディレクトリ以下にインストールされます。

準備として javac にパスが通っていることを確認してください。コマンドプロンプトを立ち上げ、javac -version を実行してバージョン情報が表示されれば OK です。

もしコマンドとして認識されない場合は、PATH に JDK の bin ディレクトリを追加してください。

コマンドプロンプト上で SET PATH=%PATH%;C:\Program Files\Java\jdk1.7.0_51\bin のようにするか、システムの環境変数設定で PATH を設定します。

小ネタですが、Windows のスタートメニューで var と入力すれば環境変数設定画面が速やかに出てくると思います。

システムの環境変数設定を変更した場合は、コマンドプロンプトを立ち上げなおします。(これは Windows で CreateProcess するときに環境変数を STARTUPINFO に渡すためです・・・って、それは、ま、今はどうでもいいですが・・・)

次の内容をメモ帳などのテキストエディタで作成して、 HelloWorld.java として保存します。

public class HelloWorld {
	public static void main(String[] args){
	
		System.out.println("Hello, world!");

	}
}

このソースコードをコンパイルするには次のように、javac にファイル名を渡します。

> javac HelloWorld.java

問題がなければ HelloWorld.java と同じディレクトリ内に HelloWorld.class というファイルが生成されるはずです。

入力の誤りなどがあれば次のようにエラー内容が表示されます。

> javac HelloWorld.java
HelloWorld.java:5: error: package Syste does not exist
                Syste.out.println("Hello, world!");
                     ^
1 error

もしコンパイルの詳細を表示するには -verbose オプションを指定します。

> javac -verbose HelloWorld.java
[parsing started RegularFileObject[HelloWorld.java]]...
[parsing completed 20ms]
[search path for source files: .]...
[search path for class files: C:\Program Files\Java\j...
ram Files\Java\jdk1.7.0_51\jre\lib\charsets.jar,C:\Pr...
\jre\lib\ext\jaccess.jar,C:\Program Files\Java\jdk1.7...
1\jre\lib\ext\zipfs.jar,.]...
[loading ZipFileIndexFileObject[C:\Program Files\Java...
[loading ZipFileIndexFileObject[C:\Program Files\Java...
[checking HelloWorld]...
[loading ZipFileIndexFileObject[C:\Program Files\Java...
HelloWorld.java:5: error: package Syste does not exis...
                Syste.out.println("Hello, world!");...
                     ^
[total 390ms]
1 error

さて、HelloWorld.class がコンパイラが生成したバイトコードということになります。

これを実行するには、次のように java にクラス名を渡します。

> java HelloWorld
Hello, world!

このように "Hello, world!" が表示されれば OK です。

さて、次はもう少しだけ発展させましょう。» 分割コンパイルと CLASSPATH

ホーム > コンパイルとプログラムの実行 > 簡単な Java プログラムのコンパイルと実行