BeanShellは、Java VM上で動作するスクリプト言語です。 Groovy、Rhino(JavaScript)、Jython(Python)などの仲間ですが、特徴は
JARファイルが10倍の1.5MB以上あるGroovyに比べると、当然できないことも多数あります。 その筆頭は、スクリプト内でクラスを定義できないことです。 クラスは全てJavaで記述し、正常にコンパイルできたものを、 まさにスクリプトのように順番にBeanShellで呼び出して実行するという考え方になります。 また、GroovyにはPerlやRubyなどから導入したとみられる、 キータイプ数を減らす各種の構文がありますが、 BeanShellにはPerlやRubyのフレーバーは全く感じられません。
ダウンロードはこのページから。 一番上の「bsh-2.0b4.jar」(約280KB)には、それより下の全ての機能が入っています。 単純に、JavaVM上でスクリプトを解釈実行させたい場合に必須なのは「bsh-core」です。 「bsh-commands」は、BeanShellをコンソールシェルとして実行する際に便利なコマンドを定義した追加パッケージです。 マニュアルのサンプルなどにもよく登場する"print"もコマンドなので、 bsh-coreだけでbsh-commandsがなければprintは使えないので注意が必要です。 「bsh-classpath」は、addClassPathコマンドなどを使って、 スクリプト内で動的にCLASSPATHを変更する機能を提供します。 「bsh-bsf」は、BSF(Bean Scripting Framework)の統一APIを使って、 JavaVMからスクリプトを解釈実行する際に必要になります。 個人的には「bsh-2.0b4」(All)を使うと、自分が作っている「StringUtil」 とクラス名が衝突するので明示的にパッケージ修飾が必要という不便があるものの、 addClassPathコマンドが便利なのでAllを使うのがいいと思います。 それで、ダウンロードしたJARファイルは展開の必要は無く、 これがイコール言語処理系としてのJARです。(追加ドキュメントのよーなものはありません) そのままCLASSPATHに通して使うことができます。
|