2013-01-25 46 views
0

我正在開發使用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> 
+0

雖然有包括犀牛在類路徑(js.jar),不能正常工作。這就像Ant註冊Rhino提供商。 – angelcervera

回答

1

你可以試試這個初始化: ScriptEngineManager manager = new ScriptEngineManager(null);