gpt4 book ai didi

javascript - 为什么 NashornScriptEngineFactory 不可能获得仅包含 ClassFilter 和 args 的 ScriptEngine?

转载 作者:行者123 更新时间:2023-11-30 15:45:42 27 4
gpt4 key购买 nike

我目前在一个项目中使用 Nashorn,我想从 NashornScriptEngineFactory 创建一个 ScriptEngine,只有一个 ClassFilter 以确保安全我的脚本以避免意外调用某些库。我还想向工厂添加参数(此处 --strict 以便在严格模式下执行所有 javascript 函数)。

我在 NashornScriptEngineFactory 中只找到了这些原型(prototype):

public ScriptEngine getScriptEngine()
public ScriptEngine getScriptEngine(final String... args)
public ScriptEngine getScriptEngine(final ClassFilter classFilter)
public ScriptEngine getScriptEngine(final ClassLoader appLoader)
public ScriptEngine getScriptEngine(final String[] args, final ClassLoader appLoader)
public ScriptEngine getScriptEngine(final String[] args, final ClassLoader appLoader, final ClassFilter classFilter)

我想知道为什么没有原型(prototype):

public ScriptEngine getScriptEngine(final String[] args, final ClassFilter classFilter)

谁能帮帮我?

最佳答案

在正常、简单的情况下,您通常可以只使用正在调用的类的类加载器来获取 ScriptEngine 实例。也就是说,你可以通过

this.getClass().getClassLoader()

(或按名称显式引用类)。只需将其传递给三参数 getScriptEngine() 方法即可。

现在,在不那么正常、不那么简单的情况下,您需要担心多个类加载器(有时是 servlet 容器中的问题或类似 Ant 任务的问题),那么您会得到什么来自的类加载器可能会有所作为。如果您确实处于这种情况,那么 (A) 祝您好运,并且 (B) 希望您有足够的上下文来知道要传递什么。

关于javascript - 为什么 NashornScriptEngineFactory 不可能获得仅包含 ClassFilter 和 args 的 ScriptEngine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110768/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com