0

RhinoJavaScript运行在 JVM 之上的解释器。我猜它对JavaScript. 现在我们有了Node.js. 所以我想知道是否Rhino仍然相关以及它对什么有用。

4

3 回答 3

5

它只是提供了一种在 JVM 中运行 Javascript 的方法。因此,它为您提供了在 JVM 之上的另一种实现选择,而不是 Java 语言(以类似于 JRuby、Scala、Groovy 等的方式)。您可以使用 Javascript 编写完整的解决方案,或者与 Java(或任何其他 JVM 语言)混合/匹配

请注意,这并不特定于“服务器端”或任何此类部署选择。

根据个人经验,我使用它在 Ant 部署中提供简单的脚本,并为使用我编写的 Java 应用程序/工具集的客户提供开箱即用的简单脚本语言。

于 2012-11-07T19:19:03.670 回答
2

Rhino 也被HttpUnit 库使用,它可以在单元测试中用于模拟 Web 浏览器,用于测试网站。它为库提供 JavaScript 支持。

于 2012-11-07T19:29:09.917 回答
1

我使用 Javascript 和 Rhino 作为我用 Java 编写的 MMORPG 服务器的脚本语言。它允许我在 Javascript 中实现 NPC 脚本、项目使用脚本、事件触发器和其他服务器端交互功能,而无需接触服务器的 Java 部分。

在 Javascript 中实现这些功能使它们的语法更易于编写和阅读。特别是因为我让服务器的 Java 部分在将它们发送到脚本引擎之前自动将任何琐碎的样板代码添加到脚本源代码中。这进一步简化了 javascript 语法。

它还允许更清晰地分离引擎和内容。

我还添加了一个 Javascript 管理 shell,它允许我在正在运行的服务器上运行任何 Javascript 代码。这已被证明是一个非常有用的测试和调试工具,我希望它以后会成为一个非常强大的管理工具。

当然,我也可以使用任何其他脚本语言,例如在游戏开发中经常用作脚本语言的 Lua。但是 Rhino 是开箱即用的,所以我不需要任何额外的 3rd 方依赖项。另外,我的客户端是一个 HTML5/Javascript 应用程序,所以我在项目中没有另一种编程语言。请注意,虽然客户端和服务端内容都使用 JS,但它们之间并没有共享代码——它们实际上是在系统架构的两端,并且通过多层间接进行交互,因此没有理由共享代码。

于 2012-11-12T13:26:07.420 回答