私はAPIが非常に異なっていることは知っていますが、組み込みJavaScriptのものとMozillaから入手できるRhinoビルドとの間に機能的な違いはありますか?Java 6のビルトインバージョンのRhinoとMozillaのRhinoパッケージとの違いは何ですか?
12
A
答えて
17
APIの意味がわかりません。 Java 6には、利用可能なエンジンの1つが "js"で表されるRhinoであるスクリプトエンジンがあります。バンドルされているMozilla Rhino ECMAScriptとWebサイトから取得できる唯一の違いは、バージョン間の違いです。 Mozilla Rhino ECMAScriptのバンドル版は1.6 rev2だと私は信じています。
これはXMLライブラリの動作と似ています。デフォルトの実装を持つ「エンジン」があります。
例クライアントの使用
==========
| Client |
==========
|
===============================
| |
========================= =============
| Java Scripting Engine | | Rhino API |
========================= =============
|
==================
| |
============= =============
| Rhino API | | Other API |
============= =============
更新
ただ、もう少しをあなたの質問に答えるには、yesとJava 6のスクリプティングエンジンは、あなたの状況やその他のセットアップ作業の世話をしますRhinoを直接使用する場合は手動で行う必要があります。ここでは2つの例を使用しています。 Java6 Scripting Engineを使用する場合、同様のことがフードの下で起こっていることに注意してください。ここで使用されているScriptingEngineは、Rhinoでバックアップする必要はありません。それはカスタムスクリプティング実装を持つことができます。
public class Main {
static class Shell extends ScriptableObject {
@Override
public String getClassName() {
return "global";
}
public static void print(Context cx, Scriptable thisObj, Object[] args, Function funObj) {
for (int i = 0; i < args.length; i++) {
String s = Context.toString(args[i]);
System.out.print(s);
}
}
}
public static void useJava6ScriptingEngine() throws Exception {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
jsEngine.eval("print('Hello, world!')");
}
public static void useRhinoDirectly() throws Exception {
Context context = Context.enter();
try {
Shell shell = new Shell();
String[] names = {"print"};
shell.defineFunctionProperties(names, Shell.class, ScriptableObject.DONTENUM);
Scriptable scope = context.initStandardObjects(shell);
context.evaluateString(scope, "print('Hello, world!')", null, 0, null);
} finally {
Context.exit();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
useJava6ScriptingEngine();
useRhinoDirectly();
}
}
関連する問題
- 1. Mozilla Rhinoのチュートリアル
- 2. RhinoとSpidermonkey JavaScriptエンジンの違いは何ですか?
- 3. Rhino Mocks:スタブとモック。違いは何ですか
- 4. Mozilla Rhino:デフォルトのJavaScript準拠レベル
- 5. ファイアウォールの後ろにあるmozilla Rhinoの使い方は?
- 6. RhinoとDOMのサポート
- 7. Rhino Mockとデバッグモード?
- 8. OracleとNhibernate 3.0のRhinoセキュリティ
- 9. RhinoのXMLHttpRequest?
- 10. Apache FOPとJavaのウォームスタートオプション(Rhinoでも良い)
- 11. RhinoでJavaのJavaScriptをコンパイルする
- 12. はRhinoのJavaScriptのコンパイラ
- 13. Javaと(Rhino)Javascriptの間で共通の型を渡す
- 14. Rhinoを使用するメリット(mozilla's rhino)
- 15. Rhino Mock: "Assert"と "Assert"
- 16. Rhinoコンパイラへのプログラマチックインターフェイス?
- 17. mozillaとwebkit touchイベントの違いは何ですか?
- 18. RhinoのネイティブJSON.Stringify Javaへのアクセス
- 19. のRhino 1.7は歴史
- 20. Rhinoモックとモック全般
- 21. Wro4j - Rhinoの実装
- 22. Rhinoのモック - CTORテスト
- 23. Rhinoとjavax.script.ScriptEngineへの同時アクセス
- 24. RhinoのモックIgnoreArguments()とテストラムダが正しく
- 25. クラスとパッケージの違いは何ですか?
- 26. Rhino Mocks 'Argに何が起こったのですか .Property
- 27. Drupal 7とDrupal 6の違いは何ですか?
- 28. VSTO 2010のRhino Mocks&NUnitエラー
- 29. Rhino Mockの模擬クラス
- 30. djangoパッケージとpythonライブラリの違いは何ですか?
私が参照してるのAPIの違いは、MozillaからRhinoのパッケージには、コンテキストとスコープの明示的な取り扱いの多くを使用していますが、ということです、私は内蔵の見てきた例の全てからJava 6の実装では、それらの詳細がバックグラウンドに掃引されるように見えるので、それらについて心配する必要はありません。 –
@Jeremy私は彼らが敷物の下で掃除されたとは思わないでしょう。 Java 6のScriptEngineがどのように機能するかを知る必要があります。私が言ったように、Java 6はScripting Engineフレームワークを導入しています。 Mozilla Rhino ECMAScriptには、そのスクリプトエンジンの実装があります。これは、Mozilla Rhino ECMAScriptがJava 6スクリプトフレームワークのコンテキスト内で動作することを意味します。 Rhino APIを直接使用する方法と、新しいJava 6 Scripting Engine APIを学ぶ方法の2つの選択肢があります。 –