如何在插件中显示jdk.nashorn.api.scripting.JSObject

时间:2015-09-18 14:58:18

标签: java-8 osgi eclipse-rcp nashorn

我有一个与Java脚本交互的Eclipse RCP。现在使用Java 8,使用nashorn,并且必须将依赖于org.mozilla.javascript(插件org.mozilla.javascript_1.7.2.v201005080400.jar)的代码更改为使用jdk.nashorn.api.scripting。

但是当我尝试在Eclipse中使用这个导入时,它看不到它

import jdk.nashorn.api.scripting.JSObject;

我收到错误:

  

访问限制:类型' JSObject'不是API(对所需库的限制'< ...> \ jre \ lib \ ext \ nashorn.jar')

如何在编译时使它在类路径中可见?

1 个答案:

答案 0 :(得分:1)

jdk.nashorn.scripting是Nashorn公开的API的一部分。请参阅https://docs.oracle.com/javase/8/docs/jdk/api/nashorn/jdk/nashorn/api/scripting/JSObject.html

似乎某些Eclipse特定问题。我用Netbeans 8.0.2编译和编译运行以下应用程序,它按预期编译并运行:

package javaapplication2;

import javax.script.*;
import jdk.nashorn.api.scripting.*;

public class JavaApplication2 {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager m = new ScriptEngineManager();
        ScriptEngine e = m.getEngineByName("nashorn");
        ScriptObjectMirror sobj = (ScriptObjectMirror)e.eval("({ foo: 33 })");
        System.out.println(sobj.getMember("foo"));
    }
}