DrJava scriptengine不起作用

时间:2016-08-22 19:39:29

标签: scriptengine drjava

我尝试使用scriptengine以字符串形式评估数学表达式,但它会抛出NullPointerException

java.lang.NullPointerException
    at Math.main(Math.java:12)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

以下是代码:

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Math{
  public static void main(String[] args){
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
    try {
      System.out.println("scriptEngine result: "+jsEngine.eval("{2+4*3*[1+(1+2+4)]}"));
    } catch (ScriptException ex) {
      Logger.getLogger(Math.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
}

我在netbeans中尝试了相同的代码并且它可以工作,但我还需要它在DrJava开发环境中工作。 是否可以解决这个问题,或者是否有任何其他库可以使用所有括号“{[()]}”的组合来评估这样的字符串?

0 个答案:

没有答案