I have created https://bugs.openjdk.java.net/browse/JDK-8220700
for this issue.
A better solution would be to get the native launcher support [1]
to replace this stop-gap generated script.
Mandy
[1] https://bugs.openjdk.java.net/browse/JDK-8182555
On 3/14/19 7:49 AM, [email protected] wrote:
Hi,
Not quite sure where to report this, but it's a pretty annoying bug
making scripts generated using the --launcher parameter unusable for
applications accepting complex command line arguments.
When generating a launcher script using jlink, the generated script
doesn't escape the arguments it passes through.
The command used to generate the jlink'd image from a maven output:
jlink --output jlinked \
-p ../target/libs/:../target/log-timing-parser-1.0.0.jar \
--add-modules be.yelido.logtimingparser,ch.qos.logback.classic,java.naming
\
--no-header-files \
--no-man-pages \
--strip-debug \
--compress=2 \
--launcher
log-timing-parser=be.yelido.logtimingparser/be.yelido.logtimingparser.Main
The generated script:
$ cat jlinked/bin/log-timing-parser
#!/bin/sh
JLINK_VM_OPTIONS=
DIR=`dirname $0`
$DIR/java $JLINK_VM_OPTIONS -m
be.yelido.logtimingparser/be.yelido.logtimingparser.Main $@
The expected script:
$ cat jlinked/bin/log-timing-parser
#!/bin/sh
JLINK_VM_OPTIONS=
DIR=`dirname $0`
$DIR/java $JLINK_VM_OPTIONS -m
be.yelido.logtimingparser/be.yelido.logtimingparser.Main "$@"