Quando eseguo il seguente pezzo di codice, la variabile engine
è impostato su null
quando sto usando OpenJDK 7 (java-7-openjdk-i386
).Cercando di usare Rhino, getEngineByName ("JavaScript") restituisce nulla in OpenJDK 7
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class TestRhino {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
try {
System.out.println(engine.eval("1+1"));
} catch (ScriptException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Funziona bene con java-6-openjdk
e Oracle di jre1.7.0
. Qualche idea del perché?
Sto usando Ubuntu 11.10. Tutte le JVM sono installate sotto /usr/lib/jvm
.
Vedi anche [motore Javascript non può essere trovato] (http://stackoverflow.com/questions/6089773); I provider JDK possono scegliere quali motori di script includere nel pacchetto, se presenti. – McDowell
interessante, jdk 7 ha lo stesso problema per me su debian. jrunsript di jdk6 esegue il motore javascript e jdk 7 jrunsript stampa "motore per linguaggio js non può essere trovato". – josefx
Nota: non è possibile essere certi che un determinato motore di script sia disponibile. Se ne hai davvero bisogno, portalo tu stesso. –