RFR: 8346719: Add relaunchers to the static JDK image for missing executables
Alan Bateman
alanb at openjdk.org
Fri Jun 27 16:10:58 UTC 2025
On Wed, 2 Apr 2025 14:54:35 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
> In the static JDK image, a single humongous java executable is generated, and no other launcher, such as javac. This makes it impossible to run our jtreg tests, which assume these are present.
>
> The solution is fortunately simply: we just need to add a bunch of trivial launchers, which are thin wrappers that execute the main java binary, with the proper arguments. This will result in the same behavior as the normal dynamic launchers, only that we will need to take the detour of launching another process instead of calling directly into the JLI library.
Right now, the static-jdk image is a bit strange in that it's a modular run-time image but with all native code compiled into bin/java. In time we hope that jlink will be able to create a static image where everything is in the single executable, so no bin directory (or any directory) for launchers. I don't object to doing something to help testing the intermediate step, just not sure that main line is the right place for this.
As regards the shim when I wonder if it should use CreateProcessW but maybe it doesn't matter for the test environments where they will run.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24380#issuecomment-2775924490
More information about the build-dev
mailing list