using recent Rhino in ant script

懵懂的女人 提交于 2019-12-07 16:10:32

问题


I'm trying to use a recent version of Rhino in an ant tag, but it seems to be using the version of Rhino that comes bundled with the JVM instead. I've tried adjusting the classpath to specify the Rhino script jar. Currently, I've tried the following:

<project default="hello" name="hello-world" basedir=".">

    <target name="hello">

        <script language="javascript">

        <classpath>

            <pathelement location="js.jar"/>

        </classpath><![CDATA[

            x=<hello><world/></hello>

        ]]></script>    
    </target>

</project>

Notice the inclusion of E4X syntax in the script, which should work only work in Rhino from Mozilla, and not the one bundled with the JVM.

js.jar is in the same directory as the ant script. I've also tried renaming it to rhino.jar, as I think I've seen documentation that suggested that this was necessary.

When I run it, it gives the following error:

javax.script.ScriptException: sun.org.mozilla.javascript.EvaluatorException: syntax error (#3)

So, it does appear as though it is still using the version of Rhino that comes with the JVM. How can I make it use the new version?


回答1:


I've got it working using the following Ant project:

<project default="hello" name="helloworld" basedir=".">
   <target name="hello">
       <script language="javascript" manager="bsf">
       <classpath>
           <fileset dir="rhino-lib" includes="*.jar"></fileset>
       </classpath><![CDATA[
           x=<hello><world/></hello>
        echo = helloworld.createTask("echo");
        for (i=1; i<=10; i++) {

          echo.setMessage(i*i);
          echo.perform();
        }
        echo.setMessage(x);
        echo.perform();

       ]]></script>     
   </target>
</project>

You need the following jars in ./rhino-lib:

  • bsf.jar (bsf 2.4.0)
  • commons-logging-1.1.1.jar
  • js.jar (rhino 1.7R2)

Not the prettiest, but it works. I will try a bit more to see if I can get it to work with javax.script.




回答2:


See the following response on the Ant user's mailing list: http://mail-archives.apache.org/mod_mbox/ant-user/201008.mbox/browser



来源:https://stackoverflow.com/questions/3526960/using-recent-rhino-in-ant-script

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!