文章目录

原始发布于: http://blog.viifly.com/blog/posts/5890100969865216

最近尝试了在Java中执行Javascript程序。起因是要写一个FTP下文件和监视程序,嫌写配置文件太复杂,就考虑把配置文件写在javascript里(代码即配置),最终实现时的基本功能都是写在javascript里了,代码量要比java少得多。

要在java里调用javascript,就不得不提Rhino了。我实现时使用的包javax.script.ScriptEngine(docs)底层也是封装的Rhino。

先看下从wikipedia来的代码片段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class RhinoEngine {
public static void main(String[] args) {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");

try {
engine.put("name", args[0]);
engine.eval("print('Hello ' + name + '!')");
} catch (ScriptException ex) {
ex.printStackTrace();
}
}
}

Rhino执行的javascript代码可以直接用调用java的类。当然,使用到的类需要先import。引入单个类用importClass(java.lang.String),而引用整个包用importPackage(java.lang).然后就可以在javascript中新建实例了var reader = new BufferedReader( new InputStreamReader(System['in']) ).

Oracle的文档有更多示例

文章目录