--- old/modules/jdk.packager/src/main/java/com/oracle/tools/packager/RelativeFileSet.java 2016-10-11 09:43:35.000000000 -0700 +++ new/modules/jdk.packager/src/main/java/com/oracle/tools/packager/RelativeFileSet.java 2016-10-11 09:43:35.000000000 -0700 @@ -61,7 +61,7 @@ String absolute = f.getAbsolutePath(); if (!absolute.startsWith(baseAbsolute)) { throw new RuntimeException("File " + f.getAbsolutePath() + - " does not belong to "+baseAbsolute); + " does not belong to " + baseAbsolute); } if (!absolute.equals(baseAbsolute)) { //possible in javapackager case this.files.add(absolute.substring(baseAbsolute.length()+1)); --- old/modules/jdk.packager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java 2016-10-11 09:43:36.000000000 -0700 +++ new/modules/jdk.packager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java 2016-10-11 09:43:36.000000000 -0700 @@ -937,10 +937,17 @@ result.add(jdkModulePath); } else { - jdkModulePath = Paths.get(System.getProperty("java.home"), "../images/jmods").toAbsolutePath(); + // On a developer build the JDK Home isn't where we expect it + // relative to the jmods directory. Do some extra + // processing to find it. + Map env = System.getenv(); - if (jdkModulePath != null && Files.exists(jdkModulePath)) { - result.add(jdkModulePath); + if (env.containsKey("JDK_HOME")) { + jdkModulePath = Paths.get(env.get("JDK_HOME"), ".." + File.separator + "images" + File.separator + "jmods").toAbsolutePath(); + + if (jdkModulePath != null && Files.exists(jdkModulePath)) { + result.add(jdkModulePath); + } } }