diff --git a/build.gradle b/build.gradle index 130b3eb..2bb28ad 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ subprojects { [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' group = "co.paralleluniverse" - version = "1.0.4-ullink3" + version = "1.0.4-ullink4" status = "integration" description = "Simple Java deployment" ext.url = "https://github.com/puniverse/capsule" diff --git a/capsule/src/main/java/Capsule.java b/capsule/src/main/java/Capsule.java index afb0d48..974986f 100644 --- a/capsule/src/main/java/Capsule.java +++ b/capsule/src/main/java/Capsule.java @@ -5429,10 +5429,8 @@ private List handleLongClasspath(List cp, int extra, List... args // visible for testing static Path createPathingJar(Path dir, List cp) { try { - dir = dir.toAbsolutePath(); - final List paths = createPathingClassPath(dir, cp); - - final Path pathingJar = Files.createTempFile(dir, "capsule_pathing_jar", ".jar"); + final List paths = createPathingClassPath(cp); + final Path pathingJar = Files.createTempFile(dir.toAbsolutePath(), "capsule_pathing_jar", ".jar"); final Manifest man = new Manifest(); man.getMainAttributes().putValue(ATTR_MANIFEST_VERSION, "1.0"); man.getMainAttributes().putValue(ATTR_CLASS_PATH, join(paths, " ")); @@ -5444,19 +5442,11 @@ static Path createPathingJar(Path dir, List cp) { } } - private static List createPathingClassPath(Path dir, List cp) { - boolean allPathsHaveSameRoot = true; - for (Path p : cp) { - if (!dir.getRoot().equals(p.getRoot())) - allPathsHaveSameRoot = false; - } - + private static List createPathingClassPath(List cp) { final List paths = new ArrayList<>(cp.size()); - for (Path p : cp) { // In order to use the Class-Path attribute, we must either relativize the paths, or specifiy them as file URLs - if (allPathsHaveSameRoot) - paths.add(dir.relativize(p).toString()); - else - paths.add(p.toUri().toString()); + for (Path p : cp) { // In order to use the Class-Path attribute, we must either relativize the paths, or specify them as file URLs + // always use absolute path to avoid encoding issue + paths.add(p.toUri().toString()); } return paths; }