예제 #1
0
 /**
  * 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;
 }
예제 #2
0
  /**
   * 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;
  }
예제 #3
0
  /**
   * 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;
  }
예제 #4
0
 public File getEffectiveJavaExecutable() {
   if (javaHome == null) {
     return Jvm.current().getJavaExecutable();
   }
   return Jvm.forHome(javaHome).getJavaExecutable();
 }