| |
javax.scriptを使う
Java6でJSR-223 Scripting APIとして採用されたスクリプト言語のサポートです。
Java7になった現在も、JavaScript(Rhino)は標準で同梱されていますが、
その他の言語、BeanShellやPython(Jython)のサポートなどはあまり進んでいないようです。
以前は https://scripting.dev.java.sum/ というサイトがあったはずなのですが、
現在はなくなっています。
サポートされている言語の確認
JDKのbinにあるjrunscriptにオプション-qをつけて実行すると、
サポートしている言語の一覧が表示されます。
というか、JDK 1.7.0_15の現在、JavaScript(Rhino)だけです。
解釈実行するサンプル
package test.scripting;
import javax.script.*;
public class JavaScriptExample1 {
public static void main(String[] args) throws Exception {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine e = factory.getEngineByName("js");
// 変数をスクリプトに渡す
e.put("a", new Integer(3));
e.put("b", new Integer(5));
try {
e.eval("print(\"Hello, JavaScript! a+b=\" + (a+b))");
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
}
|
ファイルを読んで実行するサンプル
eを取得するまでは上と同じです。
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(new FileInputStream(fileName), "MS932") );
e.eval(reader);
} catch (ScriptException ex) {
ex.printStackTrace();
} finally {
if(reader != null){
reader.close();
}
}
|

(first uploaded 2013/06/02 last updated 2013/06/02, MISUMI URANO)
|