问题标签 [jsr223]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3167 浏览

java - 沙盒 JSR-223

我正在尝试对 JSR-223 进行沙箱处理。具体来说,我不希望任何脚本可以访问我的任何课程。(我听说 Rhino 可以用 ClassShutter 做到这一点,但我想一般地做到这一点。即适用于 JSR-223 的所有脚本引擎)。

我首先尝试使用该AccessController.doPrivileged解决方案,根本不传递任何权限。它适用于大多数权限,但脚本仍然可以访问我所有的公共类(它似乎忽略了“包访问”权限......?)。

找到了这个。我的问题是:如何在脚本引擎上安装自定义 ClassLoader?(或者如果必须,我如何全局替换 ClassLoader?)

0 投票
5 回答
25858 浏览

java - 如何将 Rhino-JavaScript 数组转换为 Java-Arrays

我有以下内容:

如何将 sun.org.mozilla.javascript.internal.NativeArray 类型的结果对象转换为相应的 java 数组?有人可以向我展示一个工作代码示例吗?它应该适用于字符串和整数数组。另外,很高兴知道在哪里可以找到 rhino 引擎和 java 之间的其他数据类型转换。

顺便说一句,我知道这个页面,但我真的在寻找一个工作代码示例。

0 投票
3 回答
3341 浏览

java - 使用 JSR-223 从 Jython 脚本中获取数据

我将 Jython 2.5.1 与 JSR-223(即 javax.script 包)一起使用,并且我希望返回 Python 脚本的最后一行。例如,在评估此脚本后:

我应该回到 35,但我得到了 null。另一方面,它适用于其他测试:

我究竟做错了什么?

这是Java代码:

PS:它适用于 JRuby、Groovy 和 Rhino,即总是返回最后一行。

提前致谢。

0 投票
2 回答
169 浏览

java - 无法加载 JRubyEngine,因为找不到 org.apache.bsf.util.BSFEngineImpl

我正在尝试在自定义应用程序中使用 JRuby,但我似乎无法加载该JRubyEngine对象。我的课程在功能上看起来与此类似:

然而,这在编译时失败了:

有人对我可以从哪里获得这门课有任何见解吗?或者,如果有更好的方法来实例化 JRubyEngine 对象。

0 投票
4 回答
2326 浏览

java - 代替在具有实际文件名的 Java Rhino (JSR223) 中

在我的代码中,所有脚本都包含在 .js 文件中。每当其中一个脚本包含错误时,我都会得到以下信息:

javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "nonexistant" 未定义。(<Unknown source>#5) 在 <Unknown source> 的第 5 行

让我烦恼的是<未知来源>。多个文件在一个 ScriptContext 中,很难找到错误。它看起来也很可怕。

有没有办法用实际文件名替换 <Unknown Source> ?我看到的方法都不支持传递 File 对象,所以我在这里真的很困惑。

0 投票
1 回答
1469 浏览

java - 为什么 jrunscript 不尊重我的类路径?

我正在尝试使用 Java 6 中包含的 Rhino 从 JavaScript 进行一些 JDBC 访问。但我无法DriverManager找到Driver我想要使用的内容。

这两个例子应该是等价的:

爪哇:

JavaScript:

...但是当我运行它们时,我得到了这种行为:

爪哇:

太好了,它设法加载驱动程序并尝试解析服务器。

JavaScript:

为什么找不到类?我试过带和不带importPackage()and importClass(),带和不带Packages前缀。如果我注释掉forName,则DriverManager找不到合适的驱动程序。

0 投票
1 回答
347 浏览

java - Java 1.5 上的 JSR223 实现是否有限制

用于脚本语言的 Java API (JSR223) 是 Java 1.6 的标准配置,可以在此处为 Java 1.5 单独下载。

我的问题是:如果使用 1.5 的单独下载与 1.6 中的本机支持,我应该注意哪些限制或差异?

0 投票
3 回答
183 浏览

java - 用户输入公式解析(eval)

大家好,

我试图弄清楚如何允许用户对某些指定数据调用方法。

我想提供一组预定义的功能:

  • 移动平均线,moving_ave(x,5) ..将是 x 的 5 天移动平均线。
  • 3*x+y....等等...

所以基本上,我将为用户提供各种数据系列(x,y,z ....)和一组函数moving_ave,+ - / * ....他们应该能够编写简单的公式(仅限于我提供的功能)。

如何才能做到这一点?

我将在App Engine for Java上部署它。

所以因为我发现了 JSR-223 ......但我不确定它是否合适?我想我可以使用 Eval 功能。

谢谢,

0 投票
1 回答
176 浏览

groovy - JSR223 及其隐秘异常

有没有办法从 JSR 223 获得更好的错误消息?我正在尝试使用它来运行 Groovy 脚本,每当执行中出现问题时,我都会得到真正神秘的异常。这是一个例子:

0 投票
1 回答
765 浏览

java - 合理处理 JSR223 Rhino 抛出的 ScriptException

我开始遇到一个非常有用的 JSR223 脚本环境的肮脏小秘密。

我正在使用 Java 6 SE 附带的内置 Rhino 版本,通过 JSR223ScriptingEngine等访问它。

当我得到一个由我导出到 Javascript 环境中的 Java 对象引起的异常时,它是一个ScriptingException包装sun.org.mozilla.javascript.internal.WrappedException我真正异常(例如UnsupportedOperationException或其他)的包装

getFileName() 返回 null ,ScriptingExceptiongetLineNumber() 返回 -1。但是当我查看消息和调试器时,它WrappedException具有正确的文件名和行号,它只是没有通过 ScriptingException 的 getter 方法发布它。

伟大的。现在我该怎么办?我不知道我将如何使用 sun.org.mozilla.javascript.internal.wrappedException 无论如何它都不是公共类。