Rhino は全てを Java によって書かれたオープンソースな JavaScript の実行環境です。
… なーんてことが, Rhinoのページ (English) に書かれていたりするです。 つまりは, JavaScriptなんだけど, でも Java言語との親和性もよいってことかな。 ま, 詳しいことは そちらの資料にまかせるとして, とりあえずソレを動かせるよーな環境を作ってみましょー。
ホントはここにもブツを添付してるんだけど, 最新版が出たり, それとも何かあったとき, (←「何か」って何)
ジツブツを持ってるのがよいかもです。
てなことで, Mozillaサイトからソレを downloadしてみましょー。
download後ソレを展開してみると, たとえばこんなファイルが見つかるはずです。 (バージョンとか異なるとパスが違うかもだけど) → rhino1_5R4_1/js.jar
そう, ソレが今回の目当てのブツって訳です。
ダウンロードして ソレを眺めているだけでは何も起こりまへん。 この jarファイルを Javaの引数に指定して起動する, その手順が必要です。
でもそこに, Javaのバージョンの壁が立ちはだかります。なーんちて。 Java2は やはり新しいだけあって, 指定が簡単になってたり, それなりに便利になってるです。 ところが なんてゆーか Java 1.1.8とかだと, ちと面倒カモ。 ま, batchファイル用意すりゃ, なんとかできるかもだけど。
そんな訳で, 環境に合わせた起動方法の紹介です。
まず, 環境変数 JAVA_HOMEには \java141\jre
とか \java142\jre
みたいなのをセットしてるとして, その上で (ユーザーが作成した)JavaScriptファイル
を起動してみるには …
先ほどの js.jar
を指定して起動するだけ。
%JAVA_HOME%\bin\java -jar /usr/local/rhino1_5R4_1/js.jar JavaScriptファイル名
だけど, JavaScript Tools の中のJavaScript compiler
とか動かしたりすることを考えれば, js.jarファイルは Javaの実行環境の中の /lib/ext/
に放り込むのも手かも知れません。
その場合だと, 起動するときに こんな感じに指定するだけ。
(単に -jar js.jar
って感じで指定できた気がするけど, 違ったっぽいね)
%JAVA_HOME%\bin\java -jar %JAVA_HOME%/lib/ext/js.jar JavaScriptファイル名 あるいは %JAVA_HOME%\bin\java org.mozilla.javascript.tools.shell.Main JavaScriptファイル名
つっても, J2SE 1.4の「クラスの検索方法」とか読んでみると, ユーザークラス(に該当すると思うけど) は, -classpath オプションか, -jar オプション使って指定した方がよさげみたい。
Java2を使わずに, あえて Java 1.1.8を使うってのも, ソレはソレでよいものがあったりする。 ソレは, なかなか起動が速いってメリットだったり, 最小公倍数ってなことで, どこでも動くって感じがするから。
さて, そこで Rhino.cmd
の登場だったりして。
で, そこには (↓)こーゆーのを記述してたりする。
導入したとこの環境はそれぞれ違うから, ソレなりに変更してくらはい。
Rhino.cmd
の中でほぼすべてを指定しているので, 起動は簡単。
Rhino JavaScriptファイル名
(それぞれの環境で)準備ができたら, 動くかどーか確認してみよー。 実は, JavaScriptファイル名 を指定せずに起動してみると, JavaScript(Rhino)のプロンプトが表示されるのだ。 そのことによって正しく指定できているのか簡単に確認できたりする。 プロンプトはこんな感じのものが表示される。
Rhino 1.5 release 4.1 2003 04 21 js>
ここで, いきなり JavaScriptをコーディングしてみても, 終了しても, どちらでも構わないかも。
終了方法は quit() を実行するか, EOFの^Zを入力するだけ (EOFのキー操作は OSによって異なるけど)。
JavaScriptの動きを見てみたいばーいは, 1+1 とか, 何か計算式でも入力するのもよいかも。あまりに単純だと意味なさそーだけど。(^^;
Mozillaサイトからソレを download した場合は, 例で示されているプログラムが examplesディレクトリに入っているので, 動かしてみるのもよいかも。
JavaScriptつーか, Javaって, 環境を越えていろいろアレできるですよ。 つー訳で, Rhinoでのソフトウェアも公開してみたいな〜ってことで, そのうち σ(^^) のページ でももしかすると取り扱うかも。 そんな予感の今日このごろでした。