我一直在阅读有关 Rhino 作为在我的 Java 代码中实现 JavaScript 的有用方法的文章。
在阅读了一段时间后,在谷歌和这里搜索,我找不到在 Java 中使用 JavaScript 的真正原因。
您能否指出将 Rhino 用于常规 Java 应用程序的一些实际优势?
我一直在阅读有关 Rhino 作为在我的 Java 代码中实现 JavaScript 的有用方法的文章。
在阅读了一段时间后,在谷歌和这里搜索,我找不到在 Java 中使用 JavaScript 的真正原因。
您能否指出将 Rhino 用于常规 Java 应用程序的一些实际优势?
请注意,从 Java 6 开始,脚本 API 位于标准 Java 库中 - 请参阅包的文档javax.script
。中的 APIjavax.script
是 Rhino 的改编版本。脚本 API 不仅支持 JavaScript,还支持许多其他脚本语言。
请参阅Java 脚本程序员指南
那里的首页提到了您可能想要使用脚本的一些原因:
- 应用程序扩展/定制:您可以“外部化”应用程序的某些部分——例如金融应用程序的配置脚本、业务逻辑/规则和数学表达式。
- 应用程序的“命令行”外壳——用于调试、运行时/部署时间配置等。如今,大多数应用程序都有一个基于 Web 的 GUI 配置工具。但是系统管理员/部署者经常更喜欢命令行工具。可以使用“标准”脚本语言,而不是为此目的发明专门的脚本语言。
例如:您可以使用 Python 脚本编写 Oracle Weblogic 脚本,例如配置应用服务器域、启动或停止服务器以及执行其他管理任务。
将像 javascript 这样的脚本语言嵌入到您的软件中的好处是,您可以为其他人提供一种为您的软件编写插件的方法,而无需泄露源代码。
用另一种语言编写整个应用程序的一个原因是,您可以为一家公司编写一个应用程序,该公司将其部署在他们的 Java EE 环境中,而无需学习 Java。
我们在我们的一个产品中使用 JS(通过 Rhino)作为 DSL。它不是一个很好的 DSL,但这是我们使用 JS 的方式,而不是 Rhino 的错误。
如果您也考虑使用 .Net,我建议与 Rhino 相处。
除了 Java 环境,rhino 是 .NET 环境(使用 IKVM)上性能最好的解释器之一。另一方面,nashorn 在.net 上非常慢。
将您自己的 Rhino 项目移植到 .NET 并不是那么困难。