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