[Java] 纯文本查看 复制代码
Engine tmpEngine = Engine
.newBuilder()
.allowExperimentalOptions(true)
.build();
final ThreadLocal<Context> tl = ThreadLocal.withInitial(() -> Context
.newBuilder("js")
.allowExperimentalOptions(true)
.engine(tmpEngine)
.build());
tl.get().eval("js", "console.log('asd')");
[Java] 纯文本查看 复制代码
ScriptEngineFactory scriptEngineFactory = new ScriptEngineManager().getEngineByName("graal.js").getFactory();
final ThreadLocal<GraalJSScriptEngine> tl = ThreadLocal.withInitial(() -> {
GraalJSScriptEngine scriptEngine = (GraalJSScriptEngine) scriptEngineFactory.getScriptEngine();
try {
scriptEngine.eval("load('nashorn:mozilla_compat.js');" + System.lineSeparator());
scriptEngine.eval("function setup() { console.log('abc'); }");
} catch (ScriptException e) {
e.printStackTrace();
}
return scriptEngine;
});
for (int i = 0; i < 1000; i++) {
threadPool.schedule(() -> {
try {
tl.get().invokeFunction("setup", (Object) null);
} catch (ScriptException | NoSuchMethodException e) {
e.printStackTrace();
}
}, 1000L);
}