JavaでScript
Javaでスクリプトを使いたいと思って、次の3つのことを試してみました。
3つの中では、Java SE 6(JSR-223)がもっとも実装しやすいように思いました。 APIはうまく整理されていて、ドキュメントやサンプルコードも十分あります。 JSR標準ということでいろいろなスクリプト言語のサポートが予想されますし、将来性も十分です。 しかし、現状リリースされている最新版のJDKであるJava SE 5では利用できません。
BSFもいろいろなスクリプト言語をサポートしています。 開発は1999年ころから行われているらしいので、現状で利用できるということと、実績という点でJSR-223に勝るものと思います。 しかし、JSR-223がJava SE 6に含まれることになったためか、現在はそれほど活発に開発されているわけではないようです。 さらに痛いのは、ドキュメントの少なさです。 とりあえずスクリプトを呼び出すくらいは何とかなりましたが、細かい制御をしたいと思ったらソースコードにあたるしかないと思います。
Rhinoは、Mozilla Projectで開発されている、Java用のJavaScript実行エンジンです。 Java SE 6でも標準で含まれることになっているようで、利用機会が多いということでは安心感があります。 ただし、スクリプト用APIとも言うべきJSR-223やBSFと違って、スクリプトエンジンであるRhinoは、もちろんJavaScript専用です。 Rhinoを直接呼び出すプログラムを書いて、Rhinoを呼び出すことはできても、GroovyやJRubyなどを呼び出すことはできません。 ほかのスクリプトエンジンを組み込んだ場合も、同様のことが言えます。
今回の実装では、3つともJavaScriptで書いたスクリプトをRhinoで動かしましたが、Javaで使えるスクリプトエンジンの選択肢は、ほかにもたくさんあります。 魅力的なスクリプトをいくつも選ぶことができる状況で、さらにJSR-223の実装が使えるようになったら、便利なのは間違いありません。 現状では、Java SE 5で利用することを考えると、若干面倒ですがRhinoなどのスクリプト実行エンジンを呼び出すラッパを自前で用意しておき、Java SE 6のリリースに備えておくのがよい方法だと思われます。
Java SE 6のリリースが楽しみです。
Comments are closed for this entry.

