jpackage current status

Michael Hall mik3hall at
Tue Feb 25 14:12:38 UTC 2020

> On Feb 24, 2020, at 4:07 PM, Andy Herrick <andy.herrick at> wrote:
> then in app you can find any of the tools by using System.getProperty("java.home") and looking in "bin" subdir.
> So in the app you can refer to any of the tools by their full path.

Not to keep dragging this on. But I did notice JShell seems to need the java command. Without it…

Caused by: java.lang.InternalError: Failed remote listen: Cannot run program "/Users/mjh/HalfPipe/HalfPipe_jpkg/outputdir/": error=2, No such file or directory @ com.sun.jdi.SocketListen (defaults: timeout=, port=, localAddress=) -- {timeout=timeout=5000, port=port=49326, localAddress=localAddress=}
	at jdk.jshell/jdk.jshell.execution.JdiInitiator.reportLaunchFail(Unknown Source)

Caused by: Cannot run program "/Users/mjh/HalfPipe/HalfPipe_jpkg/outputdir/": error=2, No such file or directory
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)

The path is as you indicate so either JShell is building the path or ProcessBuilder is. If the tool did it then it would seem to make things easier for the code using it. I wasn’t even remembering there was a java.home property. Runtime exec does not seem to do this.

Also if you just copy the command in you get…

error: No file system provider is available to handle this file: /Users/mjh/HalfPipe/HalfPipe_jpkg/outputdir/

It seems there is some special sauce jlink provides so this is now definitely not possible. As Kevin Rushforth said.

More information about the core-libs-dev mailing list