java の ScriptEngineManage の実験
- http://d.hatena.ne.jp/koichiarchi/20070821/1187669141
> JavaからRubyを使う - koichi’s swap memory
この記事にある java のサンプルを MacOSX 10.5 で動作させてみた。
その前に まずは、
classpath 指定をして java を実行する shell script をつくった。
$ cat run.sh
#! /bin/sh
JRUBY_LIBS=\
$JRUBY_HOME/lib/bsf.jar:\
$JRUBY_HOME/lib/jruby.jar:\
$JRUBY_HOME/lib/profile.jar:\
/Users/youichikato/work/www/jsr223-engine/jruby/build/jruby-engine.jar
java -cp $JRUBY_LIBS:. $*
まずは、有効な engine の調査だ。
$ cat ScriptEngineSearch.java
// See
// http://d.hatena.ne.jp/koichiarchi/20070810/1186736204
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
/**
* 使用可能なスクリプトエンジンを調べる
*/
class ScriptEngineSearch {
public static void main(String args[]) {
ScriptEngineManager manager = new ScriptEngineManager();
// 使用可能なエンジンの一覧を取得
for (ScriptEngineFactory engine : manager.getEngineFactories()) {
System.out.println("enfine full name = " + engine.getEngineName());
// エンジン生成時に使用出来るショートネーム
for (String shortName : engine.getNames()) {
System.out.println("- engine short name = " + shortName);
}
}
}
}
走らせると
$ ./run.sh ScriptEngineSearch
nfine full name = JRuby Engine
- engine short name = jruby
- engine short name = ruby
enfine full name = AppleScriptEngine
- engine short name = AppleScriptEngine
- engine short name = AppleScript
- engine short name = OSA
おー、jruby が認識されている。
次は、外部の jruby scriファイルを実行する例だ。
$ cat tax.rb
def tax(m)
puts m * 1.05
end
$ cat JRubyFileExecute.java
// See
// http://d.hatena.ne.jp/koichiarchi/20070821/1187669141
import java.io.FileReader;
import java.io.IOException;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JRubyFileExecute {
private static ScriptEngine ruby = new ScriptEngineManager().getEngineByName("ruby");
public static void main(String[] args) throws ScriptException, IOException {
FileReader reader = new FileReader(args[0]);
ruby.eval(reader);
ruby.put("m", 980);
ruby.eval("tax($m)");
}
}
走らせると、
$ ./run.sh JRubyFileExecute tax.rb
1029.0
素晴らしい!
- https://scripting.dev.java.net/
> scripting: Project Home Page
には、サポートされる script の一覧がある。
java のソースコードを生成 or 入力し、それを compile して実行
なんてことをすれば、java を script 言語のように扱えるだろう。
« ピックアップ:海外では定番Wikiの『PBwiki』, ジョブズ MobileMe導入の失策を認める , etc... | トップページ | MacBook で動画撮影 »
この記事へのコメントは終了しました。
« ピックアップ:海外では定番Wikiの『PBwiki』, ジョブズ MobileMe導入の失策を認める , etc... | トップページ | MacBook で動画撮影 »
コメント