我正在開發使用JSR 223從螞蟻執行:「提供com.sun.script.javascript.RhinoScriptEngineFactory未找到」
所有都OK(單元測試,以及命令行執行)的應用程序,除非執行來自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) 爪哇熱點(TM)64位服務器VM(構建23.6-B04,混合模式)
ANT版本: Apache Ant的(TM)1.8.4在2012年5月22日
感謝編譯版本
TEST:
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>
雖然有包括犀牛在類路徑(js.jar),不能正常工作。這就像Ant註冊Rhino提供商。 – angelcervera