From a7c29080f5d43c0dc8c768297f3dd2d661639c94 Mon Sep 17 00:00:00 2001 From: Geert Bevin Date: Fri, 23 Aug 2024 10:47:40 -0400 Subject: [PATCH] Fix to the bld wrapper to take java.home into account for the java executable, otherwise there can be a mismatch between the javac version and the java version --- src/main/java/rife/bld/wrapper/Wrapper.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/rife/bld/wrapper/Wrapper.java b/src/main/java/rife/bld/wrapper/Wrapper.java index 73a9cc0..74d20a2 100644 --- a/src/main/java/rife/bld/wrapper/Wrapper.java +++ b/src/main/java/rife/bld/wrapper/Wrapper.java @@ -642,7 +642,7 @@ public class Wrapper { private int launchMainCli(File jarFile, List arguments) throws IOException, InterruptedException { var args = new ArrayList(); - args.add("java"); + args.add(findJavaExecutable()); includeJvmProperties(arguments, args); args.add("-cp"); @@ -695,7 +695,7 @@ public class Wrapper { } var java_args = new ArrayList(); - java_args.add("java"); + java_args.add(findJavaExecutable()); includeJvmProperties(arguments, java_args); java_args.add("-cp"); @@ -712,6 +712,15 @@ public class Wrapper { return process.waitFor(); } + private static String findJavaExecutable() { + var executable = System.getProperty("os.name").toLowerCase().contains("win") ? "java.exe" : "java"; + var java_home = System.getProperty("java.home"); + if (null == java_home) { + return executable; + } + return java_home + File.separator + "bin" + File.separator + executable; + } + private static void includeJvmProperties(List arguments, List javaArgs) { var i = arguments.iterator(); while (i.hasNext()) {