【发布时间】:2015-10-19 09:31:09
【问题描述】:
我想使用 Java 7 的嵌入式 javascript 引擎运行 javascript。我尝试运行的代码符合 ECMAScript 5,这应该不是问题,因为嵌入式 Rhino 的版本是支持它的 1.7 release 3。但是,运行以下 sn-p 不起作用:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.eval("var char = 'a';");
失败并出现错误missing variable name,这表明char 是保留关键字。但是,char 在 ECMAScript 5 中不再保留,所以我完全糊涂了。问题是哪个 javascript 版本应该与 java 7 中的嵌入式 Rhino 一起使用?
我用的是java1.7.0_80,引擎上报的语言版本是1.8,引擎版本是1.7 release 3 PRERELEASE。
【问题讨论】:
-
该脚本在 Java 7(OpenJDK、Linux)中对我来说不会失败。它工作得很好。
-
@RealSkeptic 确实,OpenJDK 似乎包含
Rhino 1.7 r4。由于我无法迁移到 OpenJDK,我将尝试使用Rhino 1.7 r4作为外部 jar。无论如何,感谢您发现这一点。
标签: javascript java java-7 ecmascript-5