●javaではプログラムを書いてから、すぐに実行することができません。コンパイルという作業が必要です。
●Hello.java などのファイルがあるフォルダを見ると Hello.class など .class という拡張子のファイルができています。
Hello.class というファイルは、
javac Hello.java
という操作で Hello.java をコンパイルしたときに作られました。 javac というのはjavaのプログラムをコンパイルをする命令です。その後に書かれているファイルをコンパイルして、結果を .java を .class に変えたファイルに書き出します。
同様に Hello2.java をコンパイルしたときに Hello2.class というプログラムファイルが作られました。
Hello.java などをソースファイル、Hello.class をプログラムファイルといいます。javaではプログラムファイルをそのままクラスファイルという場合もあります。
できあがったプログラムを実行するのは次のような操作でした。
java Hello
で実行されるのはこの Hello.class です。
本来のプログラムは Hello で実行されるものが多いのですが、java では特殊事情があって、このように命令しなければなりません。
●プログラムファイルをエディタでひらくと、次のように訳のわからない文字が出てきます。プログラムファイルは普通のエディタでは正しく表示されません。また、編集をするとプログラムが壊れますから、注意してください。
●C言語ではコンパイルすると、直接実行できるプログラムファイルができます。( Windowsでは Hello.exe など)しかし、javaでは実行するプログラムは、
java Hello
で実行されるのは java.exe で、これが Hello.class から命令を読みとって実行するという形をとっています。
●このしくみのおかげでjavaは異なるOSでも動きます。java.exe をOSにあわせて作っておいて同じ class ファイルを実行するのです。
●逆にこのしくみのためにjavaは実行速度が遅くなっています。これは弱点ですが、ハードウェアの進化により将来的には気にならなくなるはずです。また、はじめからclassをネイティブに実行するコンピュータを作ることも可能です。