antを使用してプロジェクトをビルドしようとすると、「java.lang.NoClassDefFoundError:sun / org / Mozilla / javascript / internal/Scriptable」が表示されます。
これは、Rhino(Oracle JDKに付属するバンドルされたjavaスクリプト)の使用に起因します。
- Eclipseを使用してプロジェクトをビルドすると、すべてが正常に機能します。
- 私が使用しているantファイルはeclipseによって生成され、java-scriptの依存関係を除いて正常に動作します。
- これらの依存関係は、OracleJDKに付属のRT.jarにあります。
- jdk6_0_u41とjdk7の両方を試しましたが、どちらも同じ結果になりました。Eclipseで成功し、antで失敗します。
- 私はubuntu10と12の両方で構築しようとしました
私には受け入れられないと思われる他の2つの提案を見ました。
- あるスレッドは、RT.jarをプロジェクトのlibディレクトリにコピーすることを提案しました。(RTはJavaランタイム全体です!)
- 別のスレッドは、私が使用すべきではないことを示唆しました:sun / org / mozilla / javascript/internal。しかし、私は高度な操作(オブジェクトメソッドの呼び出し、コールバックの登録など)を行っているため、sun.org.mozilla.javascript.internalクラスファミリーを使用する以外に方法はありません。