diff --git a/pom.xml b/pom.xml
index ac1e49b..7f79861 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
pw.yumc
YumCore
- 1.8.6
+ 1.8.7
${project.artifactId}
diff --git a/src/main/java/pw/yumc/YumCore/engine/MiaoScriptEngine.java b/src/main/java/pw/yumc/YumCore/engine/MiaoScriptEngine.java
index e96c070..06cc89e 100644
--- a/src/main/java/pw/yumc/YumCore/engine/MiaoScriptEngine.java
+++ b/src/main/java/pw/yumc/YumCore/engine/MiaoScriptEngine.java
@@ -18,6 +18,8 @@ import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleBindings;
+import lombok.val;
+
/**
* 喵式脚本引擎
*
@@ -59,21 +61,25 @@ public class MiaoScriptEngine implements ScriptEngine, Invocable {
} catch (final NullPointerException ignored) {
}
if (engine == null) {
- File nashorn = new File(System.getProperty("java.ext.dirs").split(File.pathSeparator)[0], "nashorn.jar");
- if (nashorn.exists()) {
- try {
- Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
- // 设置方法的访问权限
- method.setAccessible(true);
- // 获取系统类加载器
- URL url = nashorn.toURI().toURL();
- method.invoke(Thread.currentThread().getContextClassLoader(), url);
- engineManager = new ScriptEngineManager();
- engine = engineManager.getEngineByName(engineType);
- } catch (NoSuchMethodException | MalformedURLException | IllegalAccessException | InvocationTargetException ignored) {
- ignored.printStackTrace();
+ val dirs = System.getProperty("java.ext.dirs").split(File.pathSeparator);
+ for (String dir : dirs) {
+ File nashorn = new File(dir, "nashorn.jar");
+ if (nashorn.exists()) {
+ try {
+ Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
+ // 设置方法的访问权限
+ method.setAccessible(true);
+ // 获取系统类加载器
+ URL url = nashorn.toURI().toURL();
+ method.invoke(Thread.currentThread().getContextClassLoader(), url);
+ engineManager = new ScriptEngineManager();
+ engine = engineManager.getEngineByName(engineType);
+ } catch (NoSuchMethodException | MalformedURLException | IllegalAccessException | InvocationTargetException | NullPointerException ignored) {
+ }
+ return;
}
}
+ throw new UnsupportedOperationException("当前环境不支持 " + engineType + " 脚本类型!");
}
}