空當運行下面的代碼段中,engine
變量當我使用OpenJDK 7的(java-7-openjdk-i386
)設置爲null
。嘗試使用犀牛,getEngineByName所(「JavaScript的」)返回在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();
}
}
}
它運行罰款java-6-openjdk
和Oracle jre1.7.0
。任何想法爲什麼?
我使用的是Ubuntu 11.10。所有JVM都安裝在/usr/lib/jvm
之下。
參見[Javascript引擎無法找到](http://stackoverflow.com/questions/6089773);如果有的話,JDK提供者可以選擇要打包的腳本引擎。 – McDowell 2012-04-07 13:59:04
有趣的是,jdk 7在debian上對我有同樣的問題。 jdk6的jrunsript運行javascript引擎,並且jdk 7 jrunsript打印出「無法找到語言js的引擎」。 – josefx 2012-04-07 19:45:56
注意:您無法確定給定的腳本引擎是否可用。如果你真的需要它,把它帶到你自己身邊。 – 2012-04-10 08:30:21