Nashorn和ClassFilter

时间:2015-03-10 13:35:29

标签: java nashorn

许多示例(包括Oracle's own tutorial)引用了包jdk.hashorn.api.scripting中的某些类。但它不是标准Java 8发行版的一部分。当我尝试将其添加到我的代码中时,它告诉我:Access restriction: The type 'NashornScriptEngineFactory' is not API (restriction on required library 'C:\Program Files\Java\jre1.8.0_25\lib\ext\nashorn.jar')

如何在我的java项目中使用ClassFilter功能?

2 个答案:

答案 0 :(得分:2)

使用当前版本1.8.0_40,而不是1.8.0_25From the release notes

  

新的Java类访问过滤接口

     

使用jdk.nashorn.api.scripting.ClassFilter接口可以限制从Nashorn脚本引擎运行的脚本对指定Java类的访问。有关详细信息,请参阅Nashorn用户指南和8043717(非公开)中限制对指定Java类的脚本访问。

答案 1 :(得分:2)

我遇到了同样的问题。甚至尝试更新我的Java SDK以查看是否修复了它。更新到1.8 u65并遇到了同样的问题。如果您使用的是Eclipse,请尝试进入

Windows-&gt;偏好设置 - &gt;编译器 - &gt;错误/警告 - &gt; 弃用且受限制的API 更改 <禁止参考(访问规则) >错误警告

它为我开放了访问权限并允许我构建没有任何问题。