Java 9现在包括ECMAScript 6支持,如
this article所述.但是,它没有解释如何使用
ScriptEngine从Java运行它.链接的Java杂志也没有解释它.文章说如下:
To activate ES6 support, use --language=es6 on the command line.
这适用于jjs,但我找不到如何从Java代码启用它的方法.为了测试它,我使用了以下代码:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
...
ScriptEngine engine = new ScriptEngineManager().getEngineByMimeType("application/javascript");
try {
engine.eval("const a = 20;");
} catch (ScriptException e) {
e.printStackTrace();
}
它失败,出现以下异常:
javax.script.ScriptException: :1:0 Expected an operand but found const
const a = 20;
^ in at line number 1 at column number 0
[STACK TRACE OMITTED]
import java.util.List;
import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
...
List factories = new ScriptEngineManager().getEngineFactories();
for (ScriptEngineFactory factory : factories) {
System.out.println("-----------------------");
System.out.println(factory.getLanguageName());
System.out.println(factory.getLanguageVersion());
}
这输出如下:
-----------------------
ECMAScript
ECMA - 262 Edition 5.1
这是否意味着我无法从Java运行ECMAScript 6并仅使用jjs?或者有什么我错过了?
先谢谢.