2009-09-24 68 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並不是那麼困難。