2010-08-19 7 views
3

J'essaie d'utiliser une version récente de Rhino dans une balise ant, mais il semble plutôt utiliser la version de Rhino fournie avec la machine virtuelle Java. J'ai essayé d'ajuster le classpath pour spécifier le pot de script de Rhino. À l'heure actuelle, j'ai essayé ce qui suit:en utilisant le dernier rhino dans le script ant

<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> 

Notez l'inclusion de la syntaxe E4X dans le script, qui devrait fonctionner dans le travail que Rhino de Mozilla, et non pas celui livré avec la machine virtuelle Java. Js.jar se trouve dans le même répertoire que le script ant. J'ai également essayé de le renommer en rhino.jar, car je pense avoir vu une documentation suggérant que c'était nécessaire.

Quand je lance, il donne l'erreur suivante:

javax.script.ScriptException: sun.org.mozilla.javascript.EvaluatorException: erreur de syntaxe (# 3)

Ainsi, il ne semble comme s'il utilisait toujours la version de Rhino fournie avec la JVM. Comment puis-je utiliser la nouvelle version?

Répondre

6

Je l'ai travail à l'aide du projet Ant suivante:

<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> 

Vous avez besoin des bocaux suivants ./rhino-lib :

Pas la plus jolie, mais cela fonctionne. Je vais essayer un peu plus pour voir si je peux le faire fonctionner avec javax.script.

Questions connexes