|
UNIX向けの配布物の中には「jaclsh」という、
tclshみたいなシェルがありますが、jaclshを使わなくても、
次のようにすればJava VM上でTclスクリプトを実行できます。
% java tcl.lang.Shell test.tcl
|
スクリプトtest.tclの中身は普通のTclスクリプトでよいわけですが、
java::newなどの「java::」コマンドを使う場合には、冒頭部で
の一行を書いておく必要があります。
また、java::new コマンドでロードするJavaクラスは、
通常のJava環境と同様、環境変数CLASSPATHで指定されたパスの中から検索されます。
また、Jaclシェルを使うと(Tcl Blendでも同様のことができますが)、
自作したJavaクラスの動作テストを行うために、
Tclスクリプトを書くだけで、そのクラスのオブジェクトを動かしてみることができ、
テスト・コードをコンパイルする手間が省けます。
以下の例では、Javaで簡単な暗号化と復号のルーチンを作ってみました。
uranom.nam.Encoderクラスのメソッド
encode() と decode() です。それらはnam.jarに含まれているとします。
これに何か文字列を与えて、動作テストをしてみようと思います、と言ったときに、
下のTclスクリプト(aaa.tcl)とバッチファイルを作って、実行します。
package require java
java::import uranom.nam.Encoder
set s1 "お宝は島の裏側のRoute134と書かれた看板の真東500mにある。"
set s2 [java::call Encoder encode $s1]
puts $s2
set s3 [java::call Encoder decode $s2]
puts $s3
|
set CLASSPATH=C:\usr\java\lib\jacl.jar;C:\usr\java\lib\tcljava.jar;C:\dev\nam.jar
java tcl.lang.Shell aaa.tcl
|
(first uploaded 2003/07/25 last updated 2005/11/06, MISUMI URANO)
|