是否可以将Nashorn计算的Javascript输出转换为Java类文件以供以后调用?(类似于JSP-->Java-->类文件)
我有一个Javascript文件,它被Nashorn用来生成HTML输出。该Javascript文件具有不同的组件函数,每个组件函数用于生成其对应的HTML输出。这些组件函数通过“renderServer”函数动态调用,该函数接受组件名称和该组件的JSON数据。
private ScriptEngine nashorn;
ScriptEngineManager scriptEngineManager = new ScriptEngineManager(null);
this.nashorn = scriptEngineManager.getEngineByName("nashorn");
this.nashorn.eval(new FileReader(jsFile);
String compName="myComponent1";// Component 1 name
String jsonData="{....}";// JSON data input for myComponent
String formatted = "JSON.parse('" + jsonData + "')";
String htmlRender = "renderServer(\"" + myComponent1 + "\"," + formatted + ");";
Object finalResult = nashorn.eval(htmlRender);
我希望能够生成评估的编译输出,并像 那样调用java类,而不是每次通过传递组件名称和输入json来执行nashorn.eval。
这可行吗?
ScriptEngine
实例。我不记得我是否曾经尝试过使用Java代理方法。编辑啊好吧,你可能是对的,但我只是通过ScriptEngine
接口使用过Rhino。据我所知,Nashorn只通过该接口公开。几年前,在奇怪的循环中有一个关于内部工作方式的演示,它似乎与Rhino有很大不同。 - Pointy