/** * Locates a JDK installation for the given version. * * @return null if not found. */ @Nullable public static JavaInfo getJdk(JavaVersion version) { for (JvmInstallation candidate : getJvms()) { if (candidate.getJavaVersion().equals(version) && candidate.isJdk()) { return Jvm.forHome(candidate.getJavaHome()); } } return null; }
/** * Locates a JVM installation that has a different version to the current JVM, ie for which * java.version is different. * * @return null if not found. */ @Nullable public static JavaInfo getDifferentVersion() { Jvm jvm = Jvm.current(); for (JvmInstallation candidate : getJvms()) { if (candidate.getJavaVersion().equals(jvm.getJavaVersion())) { continue; } return Jvm.forHome(candidate.getJavaHome()); } return null; }
/** * Locates a JDK installation that is different to the current JVM, ie for which java.home is * different. * * @return null if not found. */ @Nullable public static JavaInfo getDifferentJdk() { Jvm jvm = Jvm.current(); for (JvmInstallation candidate : getJvms()) { if (candidate.getJavaHome().equals(jvm.getJavaHome())) { continue; } // Currently tests implicitly assume a JDK if (!candidate.isJdk()) { continue; } return Jvm.forHome(candidate.getJavaHome()); } return null; }
public File getEffectiveJavaExecutable() { if (javaHome == null) { return Jvm.current().getJavaExecutable(); } return Jvm.forHome(javaHome).getJavaExecutable(); }