--- old/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java 2016-09-08 18:34:55.000000000 +0530 +++ new/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java 2016-09-08 18:34:55.000000000 +0530 @@ -189,12 +189,12 @@ storeFiles(modules, release); if (Files.getFileStore(root).supportsFileAttributeView(PosixFileAttributeView.class)) { - // launchers in the bin directory need execute permission + // launchers in the bin directory need execute permission. + // On Windows, "bin" also subdirectories containing jvm.dll. if (Files.isDirectory(bin)) { - Files.list(bin) - .filter(f -> !f.toString().endsWith(".diz")) - .filter(f -> Files.isRegularFile(f)) - .forEach(this::setExecutable); + Files.find(bin, 2, (path, attrs) -> { + return attrs.isRegularFile() && !path.toString().endsWith(".diz"); + }).forEach(this::setExecutable); } // jspawnhelper is in lib or lib/