diff --git a/native/java/org/jpype/classloader/DynamicClassLoader.java b/native/java/org/jpype/classloader/DynamicClassLoader.java index 9687e3316..2192391e9 100644 --- a/native/java/org/jpype/classloader/DynamicClassLoader.java +++ b/native/java/org/jpype/classloader/DynamicClassLoader.java @@ -1,11 +1,11 @@ package org.jpype.classloader; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.net.URLClassLoader; import java.net.URLConnection; @@ -14,7 +14,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.PathMatcher; -import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; @@ -26,8 +25,6 @@ import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarFile; -import java.util.logging.Level; -import java.util.logging.Logger; public class DynamicClassLoader extends ClassLoader { @@ -207,17 +204,17 @@ public void scanJar(Path p1) try ( JarFile jf = new JarFile(p1.toFile())) { Enumeration entries = jf.entries(); - Path abs = p1.toAbsolutePath(); + URI abs = p1.toAbsolutePath().toUri(); Set urls = new java.util.HashSet(); while (entries.hasMoreElements()) { JarEntry next = entries.nextElement(); String name = next.getName(); - + // Skip over META-INF if (name.startsWith("META-INF/")) continue; - + if (next.isDirectory()) { // If we find a directory entry then the jar has directories already @@ -232,7 +229,7 @@ public void scanJar(Path p1) if (i == -1) break; String name2 = name.substring(0, i); - + i++; // Already have an entry no problem @@ -240,7 +237,7 @@ public void scanJar(Path p1) continue; // Add a new entry for the missing directory - String jar = "jar:file:" + abs + "!/" + name2 + "/"; + String jar = "jar:" + abs + "!/" + name2 + "/"; urls.add(name2); this.addResource(name2, new URL(jar)); }