许多示例(包括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功能?
答案 0 :(得分:2)
使用当前版本1.8.0_40
,而不是1.8.0_25
。 From 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 更改 <禁止参考(访问规则) >错误到警告。
它为我开放了访问权限并允许我构建没有任何问题。