jlink tool doesn't create windows os compatible launcher in resulting runtime image
Jim Laskey (Oracle)
james.laskey at oracle.com
Wed Sep 16 16:46:22 UTC 2015
Note that before we can accept external changes you must complete an OCA http://www.oracle.com/technetwork/community/oca-486395.html .
Thank you,
— Jim
> On Sep 16, 2015, at 12:55 PM, Ali Ebrahimi <ali.ebrahimi1781 at 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
More information about the jigsaw-dev
mailing list