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()) {