Java Nashorn脚本缓存

Java Nashorn脚本缓存,java,nashorn,Java,Nashorn,是否有办法缓存在Nashorn中计算的脚本,以避免对同一脚本计算两次 例如,我有一些js库可以做一些事情。我想对库进行一次评估,并在我想要的每个文件上重用它 public void modifyFile(String inputFile){ scriptEngine = new ScriptEngineManager().getEngineByName("nashorn"); bindings = scriptEngine.createBindings(); script

是否有办法缓存在Nashorn中计算的脚本,以避免对同一脚本计算两次

例如,我有一些js库可以做一些事情。我想对库进行一次评估,并在我想要的每个文件上重用它

public void modifyFile(String inputFile){
    scriptEngine = new ScriptEngineManager().getEngineByName("nashorn");
    bindings = scriptEngine.createBindings();
    scriptEngine.eval(new FileReader("css-lib.js"),bindings);
    bindings.put(INPUT, readFile(inputFilePath, StandardCharsets.UTF_8));
    scriptEngine.getContext().setWriter(new StringWriter());
    executeScript(COMPRESS_SCRIPT_PATH, scriptEngine, bindings);
}
如果您对同一脚本“eval”两次,Nashorn引擎将运行该脚本两次!但计算两次并不意味着编译(字节码)两次。Nashorn缓存编译的表示并重用