0

我正在使用 nashorn js 解释器创建一个沙盒程序,并使用一个极简的安全管理器来限制它可以做什么。
问题是当我打电话时engine.eval(reader)我得到一个空指针异常。
我知道阅读器可以工作,因为我能够逐字打印整个文件。我知道这是一个权限问题,因为如果我添加 AllPermissions 那么一切正常。
那么我需要什么权限才能在 nashorn 中运行脚本?

显然我搞砸了我的初始测试,不仅仅是文件阅读器,当我对字符串进行硬编码时也会发生这种情况。

4

2 回答 2

0

实际上 nashorn.jar 是一个扩展 jar。使用默认的安全策略,它会获得 AllPermission。如果您用自己的策略替换它,我认为您需要提供 AllPermission - nashorn.jar 需要能够创建新的类加载器、访问受限包等。

于 2014-10-21T03:00:23.130 回答
0

我发现了问题。显然我需要这个权限来运行 nashorn:

java.io.FilePermission,“/usr/lib/jvm/java-8-openjdk/jre/lib/ext/nashorn.jar”,“读取”

于 2014-10-14T20:56:53.653 回答