0

私は Rhino 1.7 の下で Javascript でいくつかのスクリプトを作成しました。そのうちの 1 つは最小限の http サーバーを起動し、入力で JS コマンドを受け入れます。

ここで、(Rhino 内から) 呼び出すと:

engine = ScriptEngineManager().getEngineByName("JavaScript");

Rhinoの古いバージョンである組み込みのJSエンジン(Java 1.6から)を取得し、いくつかの機能(複数のインターフェース用のJavaAdapterなど)がありません。

その代わりに Rhino Engine を入手するにはどうすればよいですか? ScriptEngineManager.getEngineFactories() または他に何が必要ですか?

4

3 に答える 3

1

達成したいのは、「JavaScript」を実装するスクリプトエンジンの特定のバージョンを選択することです。これを行う正しい方法は、との結果を呼び出してScriptEngineManager.getEngineFactories()確認することです。getLanguageName()getEngineVersion()

于 2009-11-30T15:59:44.783 に答える
1

私はそれを自分で見つけました(試行錯誤)。上で述べたように、Rhino はエンジン ファクトリを登録しません。現在のエンジンを (コンテキストおよびスクリプト可能なオブジェクトとして) 取得できます。

cx = Context.getCurrentContext();
scope = new ImporterTopLevel(cx);

これらのオブジェクトを使用すると、evalString/evalReader を使用してスクリプトまたはコマンド ラインを実行できます。

于 2009-12-01T11:16:06.707 に答える
0

最初のスクリプトを呼び出す前に、使用しているエンジンをスクリプト内のコンテキスト変数として設定してみませんか? そうすれば、スクリプト内で、スクリプトを実行しているエンジンにアクセスできます。

于 2009-11-30T14:19:46.653 に答える