3

私は問題があります。GWT アプリで JavaScript 評価関数を使用しようとしています。マネージャーを作成するクラスを作成しました。

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?

それを修正する方法はありますか?

4

1 に答える 1

1

GWT は、クライアント側で使用される完全な JRE のサブセットのみをエミュレートし、ScriptEngineManagerそのセットの一部ではありません。実際、全体javax.*はまったくエミュレートされていません。一般に、これは、JavaScript のリフレクションに相当するもの、および/またはスレッド/同時実行処理が存在しないことが原因です。

エミュレートされたクラスのリストについては、こちらを参照してください。

何をしようとしているのかわかりませんが、javascripteval()関数を使用して JSON 文字列を評価する必要がある場合はJSONParser.parse(String json)、 , またはJsonUtils.safeEval(String json).

于 2013-04-09T22:23:19.047 に答える