我有以下要在Eclipse插件中运行的代码段:
String scriptEnteredByUser = "print(\"Hello World\");";
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine(e -> false);
engine.eval(scriptEnteredByUser);
它不起作用,但是在Eclipse中带来以下警告:
访问限制:类型'NashornScriptEngineFactory'不是API(对必需的库'C:\ Program Files(x86)\ Java \ jdk1.8.0_73 \ jre \ lib \ ext \ nashorn.jar'的限制)
以及运行时以下异常:
java.lang.NoClassDefFoundError:jdk / nashorn / api / scripting / NashornScriptEngineFactory
我检查过,nashorn.jar是JRE的独立部分,因此它应该可以工作。我也不能使用Import-Package
,为什么呢?这些是JRE类/包。
我发现的可能选项以及为什么它们不起作用/不应该使用:
javax.script
-不可能;看到我需要上班的代码使Nashorn引擎在Eclipse插件中工作的正确方法是什么?
我有以下要在Eclipse插件中运行的代码段:String scriptEnteredByUser =“ print(\” Hello World \“);”;“; NashornScriptEngineFactory factory =新的NashornScriptEngineFactory()...