d.sunnyone.org
sunnyone.org

ページ

2012-06-11

Javaっぽいスクリプト言語BeanShell クイックスタート

前のエントリとは打って変わって、今度はJava世界のお話。

BeanShellは、JavaVM上で動くスクリプト言語。Javaっぽい文法で、Javaのライブラリを利用することができる。簡単な説明はこちら:http://news.mynavi.jp/column/jsr/031/index.html

どうしてこれを使いたかったかというと、JMeterからBeanShellのスクリプトを実行することができるため、前処理等で好きな処理を実行することができる(らしい)ためである。
(ctxやvarsなど、JMeterからBeanShell側に渡ってくる変数から、JMeterのデータを操作することができる。らしい。これはまだ試してない。)

基本

マニュアルのQuick Startにある通り、bshのjarにクラスパスを通し、"bsh.Console"か"bsh.Interpreter"のクラスを動作させることで、実行することができる。
http://www.beanshell.org/manual/quickstart.html#Quick_Start

C:\temp> java -cp c:\opt\bsh\bsh-2.0b2.jar bsh.Interpreter
BeanShell 2.0b2 - by Pat Niemeyer (pat@pat.net)
bsh % System.out.println("Hello, World");
Hello, World
bsh %

bsh.Interpreterは、ふつうのインタプリタで、/bin/bashみたいなものだと思えばOK.
bsh.Consoleは、GUIつきのコンソールを出してくれる。そのため、Windowsでは、以下のようなバッチファイルを準備しておくと便利。



ファイルを実行

ファイルに書いたスクリプトを実行するには、bsh.Interpreterにファイル名を渡せばよい。ファイル名のあとにさらに引数を書くと、プログラム側のbsh.argsから取得できる。

c:\temp\sample.bsh




C:\temp> java -cp c:\opt\bsh\bsh-2.0b2.jar bsh.Interpreter c:\temp\sample.bsh FIRST-ARGUMENT
args[0]: FIRST-ARGUMENT

編集環境を作る

Eclipse上で動くEclipseShellを試してみたが、なにやらいまいちだったので、安直にサクラエディタを使うことにした。サクラエディタの設定 > タイプ別設定一覧からJavaを選択し、設定変更で「ファイル拡張子」にbshを加えれば、色づけはそれっぽく使える。

ツール>外部コマンド実行(Ctrl+F5)で実行できると便利なので、以下のようなバッチファイルを作成して実行できるようにする(~%4とかは適当。$@的に書く方法もあると思うが調べていない。)



あとは「外部コマンド実行」ダイアログから以下のように指定すればOK
C:\opt\bsh\bsh-interpreter.bat $F FIRST-ARGUMENT

ここまでわかれば、あとはJVMの世界なので、適当に使えると思う。

0 件のコメント:

コメントを投稿