Java 的 JavaScript 引擎

标签 java rhino v8

目前我在我的应用程序中使用Rhino。我需要评估一些 JavaScript ant 从中获取值(我不需要通过 JavaScript 使用 Java 类)。但速度太慢了。也许有什么方法可以将 V8 与 Java 应用程序一起使用?

更新:

我有大量不同类型的对象。我需要一个灵活的机制来验证和转换这些对象到所需的形式(用户应该能够更改验证和转换的规则(在运行时),即在Java中硬编码这些规则不合适)。 现在,Rhino 上一切正常,但性能很差。我想过使用 NodeJS,但似乎与它通信、通过进程进行对象序列化等等 - 这些都会花费很大。

最佳答案

  1. 绝对确定您确实需要eval吗?实际上需要 eval 的地方非常非常少。

  2. 您可以使用ProcessBuilder外壳到底层系统可用的任何进程。我想说它比 Rhino eval 更快的可能性很低。

  3. 您可以保留 NodeJS与您的应用程序一起运行的进程,您通过套接字与之通信。这可能会赢得与Rhino中的eval的速度竞赛。

如果您举例说明您实际想要实现的目标,人们可能会为您提出更好的方法。

关于Java 的 JavaScript 引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4719055/

相关文章:

java - 是否有任何设计模式可以根据设备类型在数据之间切换?

java - Rhino 在 java 中设置 NativeObject 属性

javascript - Chrome V8 错误?函数在第二次被调用后表现不同

javascript - 为什么我尝试将 Date 对象设置到 Rhino 中执行的 JS 脚本时出现 "Invalid Date"错误?

android - 在为 Android 构建 V8 javascript 引擎时,我不断收到 "[...]/bin/*-ar: not found"错误

assembly - 涡轮风扇发动机为什么会剥落小环?

java - 为什么我可以在不重置长度的情况下重用 DatagramPacket

java - 按降序插入排序(java)?

java - JPA:仅更新特定字段

javascript - 使用 rhino 运行 jshint