如何在小程序中使用 Rhino javascript 引擎

发布于 2024-08-26 07:13:00 字数 233 浏览 8 评论 0原文

对于我的 java 程序,我使用 Rhino 来执行 JS 脚本。现在我正尝试将其转换为一个运行良好的小程序,除了每次调用 evaluateString(...) 时,JVM 都会抛出 AccessControlException。经过一些(大量)研究后,我发现这是由 Rhino 的自定义类加载器引起的。我的问题是,经过几个小时的谷歌搜索后,我仍然找不到一种方法来阻止 Rhino 尝试加载它自己的类加载器。

我希望有人能帮助我...

For my java program I'm using Rhino to execute JS scripts. Now I'm trying to convert it to an applet which works great, except that everytime it's calling evaluateString(...) the JVM throws an AccessControlException. After some (a lot) of research I found out that this is caused by Rhino's custom classloader. My problem is that after hours of googling I still can't find a way to stop Rhino from trying to load it's own classloader.

I hope someone can help me...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

属性 2024-09-02 07:13:00

现在似乎有效了。我所做的是将优化级别设置为 -1,如下所示:

Context context = Context.enter();
context.setOptimizationLevel(-1);

这会导致整个 JS 引擎以解释器模式运行,因此它永远不会尝试创建新的类加载器。

It seems to work now. What I did is was set the optimization level to -1 like that:

Context context = Context.enter();
context.setOptimizationLevel(-1);

That causes the whole JS engine to run in interpreter mode and it therefore never tries to create a new classloader.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文