jlink tool doesn't create windows os compatible launcher in resulting runtime image
Ali Ebrahimi
ali.ebrahimi1781 at gmail.com
Wed Sep 16 15:55:54 UTC 2015
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