Cuando ejecuto el siguiente fragmento de código, la variable se establece en engine
null
cuando estoy usando OpenJDK 7 (java-7-openjdk-i386
).Tratar de utilizar Rhino, getEngineByName ("JavaScript") devuelve nulo en 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();
}
}
}
Funciona muy bien con java-6-openjdk
y Oracle de jre1.7.0
. ¿Alguna idea de por qué?
Estoy usando Ubuntu 11.10. Todas las JVM están instaladas en /usr/lib/jvm
.
Véase también [motor de Javascript no se puede encontrar] (http://stackoverflow.com/questions/6089773); Los proveedores de JDK pueden elegir qué motores de scripts incluir, en su caso. – McDowell
interesante, jdk 7 tiene el mismo problema para mí en Debian. jrunsript de jdk6 ejecuta el motor de javascript y jdk 7 jrunsript imprime "engine for language js no se puede encontrar". – josefx
Nota: no puede estar seguro de que un motor de script determinado esté disponible. Si realmente lo necesitas, tráelo tú mismo. –