1. main函数
package org.example;
import java.util.List;
public class Main {
public static void main(String[] args) throws Exception {
JSFileList jsFileList = new JSFileList();
List<String> list = jsFileList.GetList();
Valist valist = new Valist();
JavaScriptEngine javaScriptEngine = new JavaScriptEngine(valist);
for (String name : list){
javaScriptEngine.Execute(name);
}
int i = 0;
}
}
2. 调用java脚本引擎
package org.example;
import javax.script.Bindings;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import java.io.FileReader;
import java.io.Reader;
public class JavaScriptEngine {
private final ScriptEngine engine;
private final Object object;
public JavaScriptEngine(Object object){
this.object = object;
ScriptEngineManager engineManager = new ScriptEngineManager();
engine = engineManager.getEngineByName("javascript");
}
public void Execute(String fileName) throws Exception {
Bindings bindings = engine.createBindings();
bindings.put("Valist", object);
Reader reader = new FileReader(fileName);
engine.eval(reader, bindings);
}
}
3. java内部map
package org.example;
import java.util.HashMap;
import java.util.Map;
public class Valist {
private final Map<String, Object> tagvalist = new HashMap<>();
public Valist(){
tagvalist.put("A1", 10.8);
tagvalist.put("A2", 10);
tagvalist.put("A3", 4);
tagvalist.put("A4", 23);
}
public Object GetVal(String name){
return tagvalist.get(name);
}
public void SetVal(String name, Object val){
tagvalist.put(name, val);
}
}
4. js文件列表
package org.example;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class JSFileList {
private final String currentDir = System.getProperty("user.dir") + "\\Data";
public List<String> GetList() {
File folder = new File(currentDir);
File[] fileList = folder.listFiles();
List<String> ret = new ArrayList<>();
if (fileList == null)
return ret;
for (File file : fileList) {
if (file.isFile() && file.getName().toLowerCase().endsWith(".js")) {
ret.add(currentDir + "\\" + file.getName());
}
}
return ret;
}
}