我已经在Rhino 1.7下使用Javascript编写了一些脚本,其中一个脚本启动了一个最小的http服务器并接受输入中的JS命令。现在从脚本调用javascript解释器
,如果我叫(从内部犀牛):
engine = ScriptEngineManager().getEngineByName("JavaScript");
我得到的内置JS引擎(从Java 1.6),这是犀牛的旧版本,并且缺少某些功能(如JavaAdapter的对多个接口)。
如何获得Rhino引擎而不是?我需要ScriptEngineManager.getEngineFactories()还是其他什么?
对不起冗余,但是:“engine = ScriptEngineManager()...”是在你的JS中调用的吗?哪个在Rhino 1.7中运行,但是返回默认的Java 6 JS脚本引擎而不是Rhino?为什么你需要在你的JS里面有一个新的脚本引擎?或者你想获得当前的引擎/为什么你需要引用JS中的当前引擎? – 2009-11-30 16:10:34
是的。我需要一个脚本来启动另一个解释器,以避免使用eval()。 第一个脚本启动一个HTTP服务器,它为单个页面提供HTML表单。 POST方法向服务器发送命令或文件名,服务器端脚本执行代码。 – 2009-12-01 11:19:57