この連載では,Javaを使って普段の仕事をラクにするツールを作っていきます。第10回では,人気急上昇中のスクリプト言語をJavaから扱ってみます。スクリプト言語の扱い方を知って,Javaとスクリプト言語のいいとこ取りをできるようになりましょう。

こちらからサンプルプログラムをダウンロードできます。

 皆さんこんにちは,kikainekoです。日々の定型的な業務をJavaで自動化してラクする方法を紹介するこの連載も,いよいよ10回目を迎えました。今回は,Javaからスクリプト言語を扱う方法を説明します。

 ここ最近,PerlやRuby,JavaScriptなどのスクリプト言語がいっそう注目されるようになっています。その理由は,何と言っても開発生産性が高いことにあります。ソフトウエアは年々複雑化しているにもかかわらず,短期間で開発することが求められています。そのニーズに応えるために,スクリプト言語は有力な選択肢の一つとなっているのです。

 スクリプト言語の特徴として,記述するのが簡単であるという点が挙げられます。Javaでは何行も書かなくてはいけない処理を,スクリプト言語を使えばたった1行で書けてしまう。こんなことも珍しくありません。こうした記述力の高さが,生産性の高さにつながっているわけですね。これに対しJavaは,きっちりプログラミングをしていくという性質から,スクリプト言語のような高い記述力を実現するのは困難です。

 そこでJavaが選んだのは,スクリプト言語との共存という道でした。スクリプト言語に取って代わる,あるいは取って代わられるのではなく,Javaとスクリプト言語の良いところを持ち合って使えるようにしましょう,という戦略ですね。

 具体的には,Java 6から「JavaスクリプトAPI(Application Programming Interface)」という機能が導入されました(別掲記事Java VMでスクリプト言語を使用する意味」を参照)。このAPIは,スクリプト言語で記述したコードをJava(Java VM*1)で実行するための機能を提供します(図1)。つまり,Javaのコードの中でスクリプト言語のコードを実行できるようになります。

図1●Javaとスクリプト言語の連携イメージ(Javaのコマンド実行時)
図1●Javaとスクリプト言語の連携イメージ(Javaのコマンド実行時)

 もちろんJavaのコードはそのままコンパイルしますが,コードに埋め込まれたスクリプト言語は処理エンジンに渡し,結果を返してもらいます。こうしてJavaとスクリプト言語の共存を可能にしています。

 背景説明はこのくらいにして,スクリプトAPIを使って,もっと過激に仕事をラクにしてしまいましょう!