我想使用Java 7的嵌入式JavaScript引擎運行JavaScript。我試圖運行的代碼是符合ECMAScript 5的,因爲嵌入式Rhino的版本不應該是問題是支持它的1.7 release 3。然而,運行下面的代碼片段不起作用:在Java 7上運行符合ECMAScript 5標準的JavaScript
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.eval("var char = 'a';");
它失敗,這表明char
是保留關鍵字錯誤missing variable name
。但是,ECMAScript 5中不再保留char
,所以我完全困惑。問題是哪個JavaScript版本應該在java 7中與嵌入式Rhino一起工作?
我使用java 1.7.0_80
,引擎報告的語言版本爲1.8
,引擎版本爲1.7 release 3 PRERELEASE
。
這個腳本在Java 7(OpenJDK,Linux)中不會失敗。它工作得很好。 – RealSkeptic
@RealSkeptic確實,它似乎OpenJDK包含'Rhino 1.7 r4'。由於我不能移動到OpenJDK,因此我會嘗試使用'Rhino 1.7 r4'作爲外部的jar。無論如何,感謝您的發現。 – Katona