// Validation approach:
  //  - JRE marker (rt.jar)
  //  - FX marker (jfxrt.jar)
  //  - JDK marker (tools.jar)
  private static boolean checkJDKRoot(File jdkRoot) {
    File rtJar = new File(jdkRoot, "jre/lib/rt.jar");
    if (!rtJar.exists()) {
      Log.verbose("rt.jar is not found at " + rtJar.getAbsolutePath());
      return false;
    }

    File jfxJar = new File(jdkRoot, "jre/lib/ext/jfxrt.jar");
    if (!jfxJar.exists()) {
      // Try again with new location
      jfxJar = new File(jdkRoot, "jre/lib/jfxrt.jar");
      if (!jfxJar.exists()) {
        Log.verbose("jfxrt.jar is not found at " + jfxJar.getAbsolutePath());
        return false;
      }
    }

    File toolsJar = new File(jdkRoot, "lib/tools.jar");
    if (!toolsJar.exists()) {
      Log.verbose("tools.jar is not found at " + toolsJar.getAbsolutePath());
      return false;
    }

    return true;
  }
  // select subset of given runtime using predefined rules
  public void setRuntime(File baseDir) {
    baseDir = validateRuntimeLocation(baseDir);

    // mistake or explicit intent to use system runtime
    if (baseDir == null) {
      Log.verbose("No Java runtime to embed. Package will need system Java.");
      runtime = null;
      return;
    }
    doSetRuntime(baseDir);
    useDefaultRuntime = false;
  }