Cetaを作者はどう使っているか。に戻る。
というわけで、今度はjava.exeとか言うのを使って前回作ったhello.classというのを
実行してみましょう。元のソースコードはこんなでした。
public class hello {
public static void main (String[] args) {
System.out.println("Hello world");
try {
System.in.read();
} catch (Exception e) {
}
}
}
System.out.println()で"Hello world"を表示して、その後read()でキー入力待ち。
何かキーが押されたら終了。と言った内容です。
それではまず、java.exeを登録します。設定はこんな感じにしました。
登録名はJavaBinとでもしときます。
実行ファイルは参照ボタンでさくっと「bin\java.exe」を指定しまして。
オプションは実験するだけなので何も要らない。
環境変数だけですね。ポイントは。
PATH="C:\j2sdk1.4.0_01\bin"
としておけば良さそうです。
結果のファイル出力は・・・汎用性を考えてチェックを外しておきます。
以上の設定で追加、OKで設定ファイルに書き込みます。
早速「コマンド」メニューを開けてみて、「JavaBin」の文字があるのを確認したらクリック。
設定がきちんと保存されているか確かめましょう。
で、こっからが普通のコンパイラを起動するときとは勝手が違ってきます。
編集ウインドウのファイル名はhello.javaですが、java.exeに渡すのはhello.classです。
と言うわけで、「対象ファイル名」に
"C:\java\src\hello.java"
となっているのを
"C:\java\src\hello.class"
としました。で・・・。
動かない。
DOS窓からも確認しましたが、とにかく
java.exe "C:\java\src\hello.class"としても動かない。
で、ドキュメントやら入門者向けWebページなどを眺めたら。どうも、java.exeは.classが
要らないみたいです。と言うか、ディレクトリ構造をそのままクラスの派生構造と見なしているようです。
まあとにかく、んじゃ、.classを外しましょう。「対象ファイル名」を
"C:\java\src\hello.java"
から
"C:\java\src\hello"
としました。で・・・。
やっぱりまだ動かない。
そこで、さっきの「ディレクトリ構造をそのままクラスの派生構造と見なす云々」を思い出しましょう。
「はてな。んじゃ、ひょっとしてC:\java\srcの部分もクラスの何かと見なされちゃったのかな?」
DOS窓で見てみれば当にそんな雰囲気ののエラーメッセージ(省略)がでてました。
と言うことは、とにかくクラスファイルへのパスを別に渡せればいいのですな。
しかし。どうやればクラスファイルへのパスを省略してクラスを特定できるか。
ありました。
-classpathオプションです。
これでクラスファイルのパスを指定できます。要は、上の例なら実行DLGのオプションをこうします。
-classpath C:\java\src
んで、対象ファイルのところをhelloだけにします。
念のため結果出力も外したままにしときましょう(キーボードからの入力を受け取るから)。
そうすると・・・動きましたよー。
どうにかこうにか、ちょっと実行時に手間取りますがJavaのコンパイルと実行がCeta上でも
確認がとれました。
あとは、Java知ってる友人に予約語のリストファイルと文字色設定ファイルを頼めばかなり
良い感じだ。
ただ、実際にいろいろ試すには手が掛かりすぎる。とくにjava.exeでのクラスパスの指定は
ファイル毎にいちいちする必要があり面倒だ。
ドキュメントを漁ると、そういったのをまとめたmakeファイルみたいなのを用意できるみたい。
ということは、それをCeta上で編集してJavaに渡せばもっと便利にコンパイルと実行ができるかも。
というわけで、今回のJava実験はおしまいです。
Cetaを作者はどう使っているか。に戻る。