前回,動的にJavaのソースを作成し,コンパイルを行う方法を紹介しました。しかし,実際にコンパイルを行うまでの手順は少々多いのが気になるところです。そこで,今回はもう少し簡単に動的にJavaのソースをコンパイルする方法を紹介しましょう。
その方法は本連載「Java SE 6完全攻略」の第58回から10回にわたって解説を行ったJSR 223 Scripting for Java Platformです。
えっ,Javaはスクリプトではないけどと思われた方も多いかもしれません。しかし,Compiler APIとJSR 223を組み合わせることで,Javaをスクリプトのように扱うことが可能なのです。
JSR 223でJavaを扱うには少しだけ準備が必要です。というのも,Java SEにデフォルトで添付されているスクリプトエンジンはJavaScriptのスクリプトエンジンであるMozilla Rhinoしかないためです。
Java用のスクリプトエンジンは,java.netのScripting Projectで提供されています(図1)。
では,Scripting ProjectのWebページの左側のサイドバーにあるDocuments & filesをクリックして,ダウンロードのページに移動してみましょう。jsr223-engines.tar.gzもしくはjsr223-engines.zipがスクリプトエンジンです。どちらでもかまわないので,ダウンロードしましょう。
jsr223-engines.tar.gzもしくはjsr223-engines.zipを展開すると,jsr223-enginesというディレクトリが作成されます。
その下には,beanshellからxsltまで,24のディレクトリが作成されます。それぞれ,ディレクトリ名に対応した言語のスクリプトエンジンになります。
ここでは,もちろん,javaを選択します。javaディレクトリの下にはbin,build,libの3つのディレクトリが存在します。binにはjrunscriptでJavaを扱うためのBATファイルとシェルスクリプトファイルがあります。
スクリプトエンジンの本体はbuildディレクトリに存在するjava-engine.jarです。このjava-engine.jarファイルをクラスパスに含めることで,Javaをスクリプトとして扱うことができます。