From 12fc65c3890ed371d6e9425efe812dc6b67974c2 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Sat, 4 Feb 2017 20:38:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E9=87=8A=E6=94=BE=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- src/main/java/pw/yumc/YumCore/bukkit/P.java | 25 ++++++++++----------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/main/java/pw/yumc/YumCore/bukkit/P.java b/src/main/java/pw/yumc/YumCore/bukkit/P.java index 0245228..b606f8d 100644 --- a/src/main/java/pw/yumc/YumCore/bukkit/P.java +++ b/src/main/java/pw/yumc/YumCore/bukkit/P.java @@ -6,8 +6,6 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; -import java.util.Enumeration; -import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.logging.Logger; @@ -130,14 +128,15 @@ public class P { * 目录 */ public static void saveFile(final String... dirs) { - try { - final URL url = instance.getClass().getClassLoader().getResource("plugin.yml"); - if (url == null) { return; } - final String upath = url.getFile().substring(url.getFile().indexOf("/") + 1); - final String jarPath = upath.substring(0, upath.indexOf('!')); - JarFile jar = new JarFile(jarPath); - final Enumeration jes = jar.entries(); - for (JarEntry je = jes.nextElement(); jes.hasMoreElements();) { + URL url = instance.getClass().getClassLoader().getResource("plugin.yml"); + if (url == null) { return; } + String upath = url.getFile().substring(url.getFile().indexOf("/") + 1); + String jarPath = upath.substring(0, upath.indexOf('!')); + if (!new File(jarPath).exists()) { + jarPath = "/" + jarPath; + } + try (JarFile jar = new JarFile(jarPath)) { + jar.stream().forEach(je -> { if (!je.isDirectory()) { for (final String dir : dirs) { if (je.getName().startsWith(dir)) { @@ -145,9 +144,9 @@ public class P { } } } - } - jar.close(); - } catch (IOException ignored) { + }); + } catch (IOException e) { + Log.d(e); } } }