JDK Java

import javax.script.Compilable;
import javax.script.CompiledScript;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JDK6CompileTest {
  public static void main(String args[]) {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("javascript");
    engine.put("counter", 0);
    if (engine instanceof Compilable) {
      Compilable compEngine = (Compilable) engine;
      try {
        CompiledScript script = compEngine.compile("function count(){counter=counter+1;return counter;}; count();");
        System.out.println(script.eval());
        System.out.println(script.eval());
        System.out.println(script.eval());
      } catch (ScriptException e) {
        System.err.println(e);
      }
    } else {
      System.err.println("Engine can't compile code");
    }
  }
}
/*1.0
2.0
3.0*/