0

JSR223を使用するアプリケーションを開発しています。

実行がAntからの場合を除いて、すべて問題ありません(単体テストとコマンドラインからの実行)。この場合、このエラーによる実行:

ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory: Provider com.sun.script.javascript.RhinoScriptEngineFactory not found

JDK7にはRhinoの実装が含まれており、このクラスはrt.jarにあると確信しています。Antが実行に使用されているのになぜ見つからないのですか?

JDKバージョン:javaバージョン "1.7.0_11" Java(TM)SEランタイム環境(ビルド1.7.0_11-b21)Java HotSpot(TM)64ビットサーバーVM(ビルド23.6-b04、混合モード)

ANTバージョン:2012年5月22日にコンパイルされたApache Ant(TM)バージョン1.8.4

ありがとう

テスト:

package testing;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

public class TestingGetEngineJavascript {

    public static void main(String[] args) {
        new TestingGetEngineJavascript().test();

    }

    public void test() {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("JavaScript");
        if(engine == null) {
            throw new RuntimeException("Upps!!!!!!! Not ScriptEngine found for JavaScript");
        } else {
            System.out.println("ScriptEngine found for JavaScript");
        }
    }

}


<project name="test" default="test" basedir=".">
    <target name="test">
        <java classpath="dist/testAntJSR223.jar" classname="testing.TestingGetEngineJavascript">
        </java>
    </target>
</project>
4

3 に答える 3

1

これで初期化を試すことができます: ScriptEngineManager manager = new ScriptEngineManager(null);

于 2015-06-04T12:28:14.840 に答える
0

「一時的な」回避策があります: fork="true" を使用します。

しかし、それはバグだと思います: https://issues.apache.org/bugzilla/show_bug.cgi?id=54484

于 2013-01-25T11:00:10.823 に答える
0

含める必要がありました:

同様の例を機能させるには...

于 2013-08-19T12:02:44.520 に答える