我有一个问题。 我正在尝试在我的 GWT 应用程序中使用 JavaScript eval 函数,我创建了正在创建管理器的类
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
像那样使用eval
engine.eval(calculate);
每当我尝试对那个管理器使用方法时,我都会遇到错误:
No source code is available for type javax.script.ScriptException; did you forget to inherit a required module?
No source code is available for type javax.script.ScriptEngineManager; did you forget to inherit a required module?
No source code is available for type javax.script.ScriptEngine; did you forget to inherit a required module?
知道如何解决这个问题吗?
最佳答案
GWT 仅模拟完整 JRE 的一个子集,用于客户端,ScriptEngineManager
不是该集的一部分。实际上,整个 javax.*
根本没有被模拟。通常这是由于在 javascript 和/或线程/并发处理中缺少任何类型的反射对应物。
参见 here用于模拟类的列表。
我不明白你想做什么,但如果你需要使用 javascript eval()
函数评估 JSON 字符串,只需使用 JSONParser.parse(String json)
, 或 JsonUtils.safeEval(String json)
.
关于java - GWT 和 ScriptEngineManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15909355/