14

我一直在阅读有关 Rhino 作为在我的 Java 代码中实现 JavaScript 的有用方法的文章。

在阅读了一段时间后,在谷歌和这里搜索,我找不到在 Java 中使用 JavaScript 的真正原因。

您能否指出将 Rhino 用于常规 Java 应用程序的一些实际优势?

4

5 回答 5

15

请注意,从 Java 6 开始,脚本 API 位于标准 Java 库中 - 请参阅包的文档javax.script。中的 APIjavax.script是 Rhino 的改编版本。脚本 API 不仅支持 JavaScript,还支持许多其他脚本语言。

请参阅Java 脚本程序员指南

那里的首页提到了您可能想要使用脚本的一些原因:

  • 应用程序扩展/定制:您可以“外部化”应用程序的某些部分——例如金融应用程序的配置脚本、业务逻辑/规则和数学表达式。
  • 应用程序的“命令行”外壳——用于调试、运行时/部署时间配置等。如今,大多数应用程序都有一个基于 Web 的 GUI 配置工具。但是系统管理员/部署者经常更喜欢命令行工具。可以使用“标准”脚本语言,而不是为此目的发明专门的脚本语言。

例如:您可以使用 Python 脚本编写 Oracle Weblogic 脚本,例如配置应用服务器域、启动或停止服务器以及执行其他管理任务。

于 2009-09-24T14:51:26.740 回答
11
  1. 与大多数 Java XML API 相比,使用 Rhino 和 E4X 处理 XML 是一种乐趣
  2. 您拥有“正常工作”的现有 JavaScript,并且您不想重新编写它。如果您在客户端进行一些计算或处理并将其移动到服务器,则可能会发生这种情况。
  3. 各种巧妙的缓存和代码加载技巧。
  4. 您的问题最好通过比 Java 更动态的语言来解决。
  5. 列表推导;)
于 2009-10-04T03:33:06.407 回答
6

将像 javascript 这样的脚本语言嵌入到您的软件中的好处是,您可以为其他人提供一种为您的软件编写插件的方法,而无需泄露源代码。

用另一种语言编写整个应用程序的一个原因是,您可以为一家公司编写一个应用程序,该公司将其部署在他们的 Java EE 环境中,而无需学习 Java。

于 2009-09-24T14:50:20.773 回答
4

我们在我们的一个产品中使用 JS(通过 Rhino)作为 DSL。它不是一个很好的 DSL,但这是我们使用 JS 的方式,而不是 Rhino 的错误。

于 2012-09-13T05:38:08.440 回答
0

如果您也考虑使用 .Net,我建议与 Rhino 相处。

除了 Java 环境,rhino 是 .NET 环境(使用 IKVM)上性能最好的解释器之一。另一方面,nashorn 在.net 上非常慢。

将您自己的 Rhino 项目移植到 .NET 并不是那么困难。

于 2015-11-29T10:32:21.790 回答