4

ScriptEngine を使用して JavaScript を処理するプロジェクトがあり、自分のマシンでうまく機能しましたが、プロジェクトの jar をサーバーに送信すると、サーバーの JVM に Rhino が組み込まれていないことがわかりました。コードは

new ScriptEngineManager().getEngineByName("javascript");

rhino のダウンロード ページにアクセスし、最新バージョンを入手して、そこから js.jar を抽出し、プロジェクトに jar を追加しましたが、それでも同じ問題が発生します。

4

1 に答える 1

10

JavaScript エンジンは、Sun/Oracle JDK にのみ含まれています。IBM J9 や Oracle JRockit などの他の Java 実装を使用する場合 (サーバー上である可能性が非常に高い)、または Sun/Oracle JDK ではなく Sun/Oracle JRE (サーバー上である可能性が高い) を使用する場合は、 JavaScript エンジンを取得しないでください。

Sun の完全な JDK を使用する必要があります。

また、JDK6 に同梱されている JavaScript エンジンは Rhino ではありません。これは、Rhino の数年前の廃止されたリリースの簡素化されたロボトミー バージョンです。特に、コンパイラが欠落しているため、パフォーマンスが低下する可能性があります。

また、API のベースとなっている Rhino の廃止されたリリースが見つかったとしても、Rhino と JDK6 JavaScript エンジンの間で必ずしも API に互換性があるとは限らないことに注意してください。したがって、展開で Rhino を使用する場合は、開発でも使用することをお勧めします。

最後になりましたが、Eclipse プロジェクト ファイルに何らかのエントリを作成したからといって、サーバーのクラスパスが魔法のように変更されるわけではありません。すべてのクラスパスが適切に設定されていることを確認する必要があります。私は FreeBSD の経験はありませんが、パッケージ管理システム (この場合は FreeBSD ポート) がport install rhino.

于 2011-01-10T17:58:17.840 に答える