2009-09-24 109 views
13

我一直在阅读有关Rhino作为在我的Java代码中实现JavaScript的有用方法。使用Rhino的优势(mozilla的犀牛)

读了一段时间,在谷歌搜索和这里之后,我无法找到我会用Java里面JavaScript中的真正原因。

你能点上使用犀牛一个普通的Java应用程序的一些真实世界的优势,你觉得?

+0

除了别人说的话,游戏开发就是一个很好的例子。由于多种原因,拥有外部脚本是游戏开发中的一种常见做法,如果您使用Java编写游戏并希望使用JavaScript作为脚本语言,Rhino非常棒。 – Josh1billion 2015-01-02 21:46:01

回答

10
  1. 犀牛和E4X处理XML是一种快乐相比,大部分的Java的XML API
  2. 你现有的JavaScript“只是工作”的,你不想重新写。如果您在客户端进行了一些计算或处理并将其移至服务器,则会发生这种情况。
  3. 各种整洁的缓存和代码加载技巧。
  4. 您的问题最好通过更加动态的语言来解决,然后用Java。
  5. 列表理解;)
+1

你是对的。我会使用Jython而不是JavaScript来覆盖您提供的大部分要点。但你可能是一个java的人不会。 – Santi 2009-10-05 00:47:04

5

嵌入如JavaScript到您的软件的脚本语言的好处是,你可以提供其他的方式不给的源代码动手写为您的软件插件。

一个原因写在另一种语言的整个应用程序是,你可以写上部署在他们的Java EE环境的企业应用程序,而无需学习Java。

+1

为了让其他人能够插入到您的应用程序而无需泄露源代码,您只需要一个包含一些界面的软件包。 – 2010-11-22 13:00:53

+0

IBM Maximo 7.5 +可以完成此操作(Rhino或Jython),而且额外的好处是您可以避免对其软件进行自定义,从而使升级更平滑。 – Bratch 2016-01-07 22:54:53

14

注意,由于Java 6中,脚本API是标准的Java库 - 看包javax.script的文档。 javax.script中的API是Rhino的改编版本。脚本API不仅支持JavaScript,还支持许多其他脚本语言。

Java Scripting Programmer's Guide

头版有提到你可能需要使用脚本的一些原因:

  • 应用扩展/定制:你可以在“外部化”应用程序的部分 - 像配置脚本,财务应用程序的业务逻辑/规则和数学表达式。
  • “命令行”炮弹的应用 - 用于调试,运行/部署时间配置等大多数应用程序有一个基于Web的GUI工具configuaration这些天。但系统管理员/部署人员通常更喜欢命令行工具。为了达到这个目的,不需要发明专门的脚本语言,而是可以使用“标准”脚本语言。

举个例子:你可以使用脚本Python脚本,例如的Oracle WebLogic配置应用程序服务器域,启动或停止服务器,并做其他管理任务。

+0

这些其他语言是什么? – 2014-11-17 22:15:46

+1

@WesleiPrudencio请参阅http://stackoverflow.com/questions/11838369/where-can-i-find-a-list-of-available-jsr-223-scripting-languages – Jesper 2014-11-18 07:40:19

4

我们使用JS(通过犀牛)对我们的产品的一个DSL。这不是一个好的DSL,但这是我们如何使用JS而不是犀牛的错。

+0

我都是简短而甜蜜的,但我不清楚DSL在这方面是指什么。你愿意开导我吗? – WynandB 2013-02-20 23:52:06

+1

DSL =域特定语言。基本上,我们需要一种允许人们表达规则的语言。 Javascript是好的,因为通过指定全局上下文中的内容,可以很容易地设置用户可以做什么和不可以做什么。不包括必需。 – user1545858 2013-02-22 05:45:52

0

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

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

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