我正在开发一个使用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运行时环境(build 1.7.0_11-b21) Java HotSpot(TM) 64位服务器VM (build 23.6-b04,混合模式)
ANT版本: Apache Ant(TM)版本1.8.4,编译于2012年5月22日
谢谢
测试:
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>
发布于 2013-01-25 19:00:11
有一个“临时”的解决方法:使用fork="true“
但我认为这是一个错误:https://issues.apache.org/bugzilla/show_bug.cgi?id=54484
发布于 2015-06-04 20:28:15
您可以尝试使用以下命令进行初始化:ScriptEngineManager manager = new ScriptEngineManager(null);
发布于 2013-08-19 20:02:45
https://stackoverflow.com/questions/14518438
复制相似问题