【发布时间】:2015-12-15 18:51:45
【问题描述】:
我有一个与 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”的限制)
如何在编译时使其在类路径中可见?
【问题讨论】:
-
根据JavaDocs,
jdk.nashorn包不能直接使用。为什么不使用javax.script的类形式? -
@RüdigerHerrmann 在我的理解 javax.script 不提供所需的功能。我评估 JS 并取回 JS-Objects。在 Java 中,它们是 jdk.nashorn.api.scripting.ScriptObjectMirror 类型的实例。我想使用它的方法来检查和检索包含的数据。 javax.script 没有这个功能,还是我错过了什么?
-
恐怕我不是脚本引擎专家。如果您确定您需要该功能并且不介意将您的代码绑定到特定的实现,那么这就是要走的路。您可以发布捆绑清单的相关部分吗?您可能必须
Import-Package必要的 jdk.nashorn 包。 -
尝试将其添加到导入包时,我得到
No available bundle exports package 'jdk.nashorn.api.scripting'。我将它用于其他软件包,例如javax.annotation,它在那里工作。现在我刚刚更新到 java8 u60,但这也没有帮助。 -
我在这个答案中找到了解决方案:[访问限制:“应用程序”类型不是 API(对所需库 rt.jar 的限制)][1] [1]:stackoverflow.com/questions/25222811/…跨度>
标签: java-8 osgi eclipse-rcp nashorn