Hi, This is clean and tested patch: diff --git a/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java b/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java --- a/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java +++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java @@ -172,17 +172,24 @@ ByteArrayInputStream stream = new ByteArrayInputStream(res.getByteArray()); mainClass = ModuleDescriptor.read(stream).mainClass(); if (mainClass.isPresent()) { - Path cmd = root.resolve("bin").resolve(module); + Path cmd = root.resolve("bin").resolve(isWindows()? module+".bat": module); if (!Files.exists(cmd)) { StringBuilder sb = new StringBuilder(); - sb.append("#!/bin/sh") - .append("\n"); - sb.append("DIR=`dirname $0`") - .append("\n"); - sb.append("$DIR/java -m ") - .append(module).append('/') - .append(mainClass.get()) - .append(" $@\n"); + if(!isWindows()) { + sb.append("#!/bin/sh") + .append("\n"); + sb.append("DIR=`dirname $0`") + .append("\n"); + sb.append("$DIR/java -m ") + .append(module).append('/') + .append(mainClass.get()) + .append(" $@\n"); + } else { + sb.append("%~dp0java -m ") + .append(module).append('/') + .append(mainClass.get()) + .append(" %*\n"); + }
try (BufferedWriter writer = Files.newBufferedWriter(cmd, StandardCharsets.ISO_8859_1, On Wed, Sep 16, 2015 at 8:46 PM, Jean-Francois Denise < jean-francois.den...@oracle.com> wrote: > Hi Ali, > I logged: https://bugs.openjdk.java.net/browse/JDK-8136645 > Thanks for reporting. > JF > > On 16 Sep 2015, at 17:55, Ali Ebrahimi <ali.ebrahimi1...@gmail.com> wrote: > > > Hi, > > > > The following patch tries to fix this: > > > > diff --git > > > a/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java > > > b/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java > > --- > > > a/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java > > +++ > > > b/src/jdk.jlink/share/classes/jdk/tools/jlink/plugins/DefaultImageBuilder.java > > @@ -172,17 +172,24 @@ > > ByteArrayInputStream stream = new > > ByteArrayInputStream(res.getByteArray()); > > mainClass = ModuleDescriptor.read(stream).mainClass(); > > if (mainClass.isPresent()) { > > - Path cmd = root.resolve("bin").resolve(module); > > + Path cmd = root.resolve("bin").resolve(isWindows()? > > module+".bat": module); > > if (!Files.exists(cmd)) { > > StringBuilder sb = new StringBuilder(); > > - sb.append("#!/bin/sh") > > + if(!isWindows()) > > + sb.append("#!/bin/sh") > > + .append("\n"); > > + sb.append("DIR=`dirname $0`") > > .append("\n"); > > - sb.append("DIR=`dirname $0`") > > - .append("\n"); > > - sb.append("$DIR/java -m ") > > + sb.append("$DIR/java -m ") > > .append(module).append('/') > > .append(mainClass.get()) > > .append(" $@\n"); > > + } else { > > + sb.append("%~dp0java -m ") > > + .append(module).append('/') > > + .append(mainClass.get()) > > + .append(" $*\n"); > > + } > > > > > > Best Regards, > > Ali Ebrahimi > > -- Best Regards, Ali Ebrahimi