2009-09-24 18 views
13

私はJavaコード内でJavaScriptを実装するのに便利な方法としてRhinoを読んできました。Rhinoを使用するメリット(mozilla's rhino)

しばらく読んでから、Googleで検索したところ、私はJavaの中でJavaScriptを使用する本当の理由を見つけることができませんでした。

通常のJavaアプリケーションでRhinoを使用した場合の実際のメリットを教えてください。

+0

他にも述べたことに加えて、ゲーム開発は素晴らしい例です。外部スクリプトを使用するのは、ゲーム開発では非常に一般的な方法です.Javaでゲームを作成し、JavaScriptをスクリプト言語として使用する場合は、Rhinoが優れています。 – Josh1billion

答えて

10
  1. 処理XMLは喜びあなたは「ただ働き」というJavaScriptを既存しているのJava XML APIを
  2. のほとんどに比べて、あなたはそれを再書き込みしたくないです。これは、クライアント側で何らかの計算や処理が行われ、それをサーバーに移動した場合に発生します。
  3. あらゆる種類のきちんとしたキャッシングとコード読み込みの技です。
  4. あなたの問題は、Javaよりも動的な言語によって良く解決されます。
  5. リスト内包;)
+1

あなたは正しいです。私はJavaScriptの代わりにJythonを使用して、あなたが与えたポイントのほとんどをカバーします。しかし、おそらくJavaの男はしませんでした。 – Santi

5

javascriptのようなスクリプト言語をソフトウェアに組み込むことの利点は、ソースコードを手放すことなく他の人にソフトウェアのプラグインを書く方法を提供できることです。

別の言語でアプリ全体を書く理由は、Javaを学習することなくJava EE環境にデプロイする会社のアプリを書くことができるということです。

+1

ソースコードを譲渡せずに他の人があなたのアプリにプラグインできるようにするには、いくつかのインターフェースを備えたパッケージが必要です。 –

+0

IBM Maximo 7.5 +はこれを実行します(RhinoまたはJython)。ソフトウェアのカスタマイズを避けることで、アップグレードがスムーズになります。 – Bratch

14

Java 6以降、スクリプトAPIは標準のJavaライブラリにあります。パッケージjavax.scriptのドキュメントを参照してください。 javax.scriptのAPIは、Rhinoの適合バージョンです。スクリプトAPIは、JavaScriptだけでなく他の多くのスクリプト言語もサポートしています。

あなたは、スクリプトを使用したいかもしれないいくつかの理由が言及フロントページJava Scripting Programmer's Guide

を参照してください:

  • アプリケーション拡張/カスタマイズ:あなたはあなたのアプリケーションの一部を「外部化」することができます - のような構成スクリプト、ビジネスロジック/ルール、金融アプリケーション用の数式などが含まれます。
  • アプリケーション用の「コマンドライン」シェル-デバッグ、ランタイム/デプロイメントなどのためのシェルです。ほとんどのアプリケーションには、最近、WebベースのGUI設定ツールがあります。しかし、システム管理者/デプロイヤーはコマンドラインツールをよく使用します。その目的のために特別なスクリプト言語を発明する代わりに、「標準的な」スクリプト言語を使用することができます。

例:あなたは、スクリプトのOracle WebLogicは、アプリケーション・サーバ・ドメインを設定するには、サーバーを起動または停止すると、他の管理タスクを実行するために、たとえば、Pythonスクリプトを使用してすることができます。サイとE4Xと

+0

これらの他の言語は何ですか? –

+1

@WesleiPrudencio http://stackoverflow.com/questions/11838369/where-can-i-find-a-list-of-available-jsr-223-scripting-languages – Jesper

4

我々の製品のいずれかで、DSLのためのRhino経由JS()を使用します。これは素晴らしいDSLではありませんが、それはRhinoではなくJSをどのように使用するかの問題です。

+0

私はすべて短くて甘いですが、この文脈でDSLが何を指しているかはわかりません。あなたは私を啓発してもらえますか? – WynandB

+1

DSL =ドメイン固有の言語。基本的には、ルールを表現するための言語が必要でした。 Javascriptは、グローバルなコンテキストにあるものを指定することで、ユーザーが実行できる操作と実行できない操作をセットアップするのが簡単なため、優れています。必要はありません。 – user1545858

0

また、.Netを検討している場合は、私はRhinoと提携することをお勧めします。

Java環境に加えて、rhinoは、.NET環境(IKVMを使用)で最高のパフォーマンスインタプリタの1つです。一方、ナショーンはネット上で非常に遅いです。

独自のRhinoプロジェクトを.NETに移植することはあまり難しくありません。

関連する問題