问题标签 [rhino]

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 投票
1 回答
12462 浏览

java - 如何使用 Java 调用 Rhino Javascript 解释器?

有没有使用java方法调用rhino-javascript函数并将其返回给java的例子?我为 rhino 找到的唯一示例是仅在 rhino shell 上键入命令。

0 投票
1 回答
1660 浏览

java - Java 6 ScriptEngine 和 JSON.parse 问题

Java 6 ScriptEngine 中包含的 Rhino 版本没有 JSON 解析器。我尝试JSON2.jsscriptengine.eval(). 当我尝试执行时JSON.parse,它最终给了我.replace一个未知函数的脚本错误。.replace在 JSON2 中引用了多个位置,并且在浏览器(IE7、IE8、FF3)中运行良好。有人看到这个并有建议吗?

0 投票
1 回答
560 浏览

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

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

我希望有一个人可以帮助我...

0 投票
4 回答
8228 浏览

java - 如何使用 Rhino 将 Java 类中的方法添加为 Javascript 中的全局函数?

我有一个简单的 Java 类,它有一些方法:

我想创建一个此类的实例并允许 Javascript 代码直接调用方法,如下所示:

我现在唯一能弄清楚的方法是使用

然后utils.deal(...)在Javascript代码中使用。我也可以用 Javascript 为每个方法编写包装函数,但是应该有一种更简单的方法可以自动为类的所有公共方法执行此操作。

0 投票
2 回答
6257 浏览

java - Rhino:如何从 ScriptableObject 中获取所有属性?

我使用 Javascript 对象作为具有配置属性的对象。例如,我在 javascript 中有这个对象:

这个对象 (NativeObject) 在 Java 函数中返回给我。例如

我想从对象中获取所有属性并从中构建 HashMap。

任何帮助将不胜感激。

0 投票
3 回答
786 浏览

java - 在JAVA中获取javascript的所有变量

我正在为 Java 平台使用 rhino 和脚本,以便允许用户扩展我的应用程序。

但是,用户可以编写一些案例,例如(ASTO.value>440) || (ASTO.bellowNormal)等...问题是,在使用 ScriptEngine 从我的 JAVA 应用程序运行脚本之前,我想获取所有变量的名称!因为我应该知道脚本运行需要哪些变量...我知道正则表达式可以完成这项工作,但我不确定...请有人可以帮我找出 java regexp 以获取我想要的变量真的很欣赏。。

0 投票
1 回答
706 浏览

java - 在 Java 中用 Rhino 解析和替换 Javascript 标识符

假设我让用户使用 Javascript 编写条件,用户可以编写条件来执行测试并返回 true 或 false。例如:

我想找出用户编写的脚本中使用了哪些变量。我试图找到一种在 Java 中获取标识符名称的方法。Rhino 库没有多大帮助。但是我发现通过处理异常我可以获得所有的标识符。所以这个问题就解决了。

所以一切都很好,但有一个小问题。如何用数字标识符替换这些标识符?例如INS应该是_234并且ASTO应该是_331

INSASTO是我数据库中的实体。我想替换它们,因为名称可能会改变。我可以使用替换来做到这一点,但这并不容易,因为:

  1. 它应该是可逆的。例如ASTOto_234_234toASTO再一次。
  2. 替换_23MPLAH也可能替换为_234. 这可以通过正则表达式以某种方式解决。
  3. 如果_23在评论区怎么办?很少发生,但有可能/* _23 fdsafd ktl */。它也应该被更换。
  4. 如果它是函数的名称怎么办?例如_32() {}。也很少见,但不应更换。
  5. 如果它包含在""or中''怎么办?

我相信还有更多的案例。有任何想法吗?

0 投票
1 回答
1630 浏览

unit-testing - 模拟一个改变输入值的 void 方法

如何模拟带有参数的 void 方法并更改值参数?

我想测试一个依赖于另一个类(SomeClassB)的类(SomeClassA)。我想模拟 SomeClassB。

SomeClassB 实现接口 IFoo

然后在我的单元测试类中,我准备了一个模仿 SomeClassB.GetValue 的委托类:

在模拟部分我写道:

我检查了几个帖子,委托似乎是模拟 void 方法的关键。但是,在尝试了上述方法后,它不起作用。您能否告知我的委托课程是否有任何问题?还是模拟语句中有问题?


我的 RhinoMocks 是 3.5,如果我包含 IgnoreArguments() 似乎它正在删除 Do 部分我刚刚找到这个页面: http: //www.mail-archive.com/rhinomocks@googlegroups.com/msg00287.html

现在我变了

Expect.Call(delegate { myFooObject.Getvalue(5, null); })。Do(new GetValueDelegate(GetValue)).IgnoreArguments().Repeat.Any ();

Expect.Call(delegate { myFooObject.Getvalue(5, null); }).IgnoreArguments()。做(新的GetValueDelegate(GetValue)) .Repeat.Any();

现在它工作得很好!

0 投票
3 回答
916 浏览

javascript - 犀牛和Javascript 1.8?

是否可以让 Rhino 使用比 1.7 更新的 JS 实现?

是不是要等mozilla来做呢,还是有社区项目带头了?

谢谢。

0 投票
1 回答
609 浏览

request - Rhino - 将参数映射转换为原生 JS 对象

将参数从请求转换为本机 JS 对象的“正确”方法是什么?

似乎无论我做什么,我最终都会得到一个 java 对象。