diff --git a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/OS.java b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/OS.java index b0fa4ec051b1..5afa60117b2b 100644 --- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/OS.java +++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/OS.java @@ -52,6 +52,10 @@ public String asPackageName() { return name().toLowerCase(); } + public boolean isCurrent() { + return getCurrent() == this; + } + private static OS findCurrent() { final String name = System.getProperty("os.name"); if (name.equals("Linux")) { diff --git a/substratevm/src/native-image-maven-plugin/src/main/java/com/oracle/substratevm/NativeImageMojo.java b/substratevm/src/native-image-maven-plugin/src/main/java/com/oracle/substratevm/NativeImageMojo.java index fc9ed3c70b3c..03667aa5f15b 100644 --- a/substratevm/src/native-image-maven-plugin/src/main/java/com/oracle/substratevm/NativeImageMojo.java +++ b/substratevm/src/native-image-maven-plugin/src/main/java/com/oracle/substratevm/NativeImageMojo.java @@ -175,7 +175,7 @@ public void execute() throws MojoExecutionException { addClasspath(project.getArtifact()); String classpathStr = classpath.stream().map(Path::toString).collect(Collectors.joining(File.pathSeparator)); - Path nativeImageExecutable = getMojoJavaHome().resolve("bin").resolve(withExeSuffix("native-image")); + Path nativeImageExecutable = getMojoJavaHome().resolve("bin").resolve("native-image" + (OS.WINDOWS.isCurrent() ? ".cmd" : "")); if (Files.isExecutable(nativeImageExecutable)) { String nativeImageExecutableVersion = "Unknown"; Process versionCheckProcess = null; @@ -268,13 +268,6 @@ public void execute() throws MojoExecutionException { } } - private String withExeSuffix(String basename) { - if (OS.getCurrent() == OS.WINDOWS) { - return basename + ".exe"; - } - return basename; - } - private void addClasspath(Artifact artifact) throws MojoExecutionException { if (!"jar".equals(artifact.getType())) { getLog().warn("Ignoring non-jar type ImageClasspath Entry " + artifact); @@ -421,7 +414,7 @@ public Path getJavaHome() { @Override public Path getJavaExecutable() { - return getJavaHome().resolve("bin").resolve(withExeSuffix("java")); + return getJavaHome().resolve("bin").resolve("java" + (OS.WINDOWS.isCurrent() ? ".exe" : "")); } private List getSelectedArtifactPaths(String groupId, String... artifactIds) {