さて、今度はソースを実行できる形に変換します。これが「コンパイル」ってやつですな。某落ち物系ゲームを作っている会社とはなんら関係ありません(*^_^*)。
コンパイルはコマンドプロンプトから「C:\>」の後に次のように入力します。
javac ファイル名
たとえば、
c:\>javac test.javaです。
一応、説明しますがこれはjavac.exeというプログラムを実行しようとしているのです。
そのときにコンパイルするファイル名も一緒に指定しています。
私はEドライブのJAVAというフォルダにソースを入れていますので、
c:\>javac e:\java\test.java
と入力します。
ファイル名は拡張子の.javaまで付けないとファイルを見つけられずにコンパイル出来ません。何もエラーが出ずに
c:\>
の状態になったら、コンパイル成功です。またtest.javaは大文字小文字関係なく入力していいです。
Windowsはファイル名の大文字小文字は判別しませんから。
エラーが出たら、ソースを見直しましょう。
うまくいった場合は、Test.javaと同じフォルダにTest.classという「バイトコード」形式になったJAVAプログラムが作成されているはずです。
バイトコードの説明は説明すると長くなるので、見たい人はここで。
アプリケーションというほどではないけど、実行してみましょう。
コマンドラインでこう打ちます。
java クラス名
それでは、今回の場合は
c:\>java test
だな。よし、実行。
エラー発生!!
Exception in thread "main" java.lang.NoClassDefFoundError:
test
????
ここで気を付けるのがjavaの後が「クラス名」だということ。
Windowsの場合、ファイル名は大文字小文字関係ありませんが、クラスはこれを区別します。
だから、
c:\>java test
ではプログラムが実行できません。
そんなわけでさっき保存するときのファイル名は大文字小文字までクラス名と合わせた方がいいというのは、ここで混乱や間違いを防ぐためだったんですねー。
合わせておけば、ファイル名=クラス名になるから、わかりやすいでしょ?
c:\>java Test
よし、これでOKでしょ。実行!!
また
Exception in thread "main" java.lang.NoClassDefFoundError:
test
って出てる。なんでやねん。
実はjava.exeというこのプロクラムは今、現在のフォルダしか見ていないようなのです。ああ、なるほどね、ということで、
c:\>java e:\java\Test
これで、どうだ!!
いやいや、これもダメです。
javaの後はクラス名です。これはファイル名の指定の仕方です。
結局、正解は
c:\>e:
で、Eドライブに切り替える。e:\>に表示が変わったら、
e:\>cd \java
と入力してさきほどコンパルした「JAVA」の
e:\java>java Test
と入力すればOKです。
「e:」は現在のドライブを切り替えるコマンド、「cd
\java」は現在のフォルダをjavaフォルダに切り替えるコマンドである。
ようするに、これらのコマンドを使って、現在のフォルダをTest.classのあるフォルダに切り替えてあげれば万事OKなのです。あー、わかるまで時間かかった・・・。
これで、コマンドプロンプトに"Hello World
!!"の文字が表示された。
まったく最初からテキストに書いていない部分でつまづきまくりました。
あとのサンプルはちょちょいのちょいで実行OK。そのまま打てばなんとかなる感じ。
・インストールは雑誌の付録からやれ!!
・PATHの設定はやっとけ!やらないと面倒だ、かなり。
・ソースはxxxxx.javaで保存だ!基本だぞ。
・ソースのファイル名はクラス名と一緒にしろ!絶対だぞ。
・実行はclassフォルダに移動してやれ!約束だぞ。
・事件は会議室で起きてるんじゃない!現場で起きてるんだぞ(嘘)
いやあ、初回からかなりのボリュームにしてしまった。後が続くのか?
次回の予定は、ウィンドウを出したり、JAVAアプレットを作ってみるぞ。