/** * Returns the JVM provider. * * @return Returns the JVM provider. */ private static JvmProvider getJvmProvider() { if (getJavaVendorMatches("Sun")) { return JvmProvider.SUN; } else if (getJavaVendorMatches("Oracle Corporation")) { return JvmProvider.ORACLE; } else if (getJavaVendorMatches("IBM")) { return JvmProvider.IBM; } else if (getJavaVendorMatches("Azul")) { return JvmProvider.AZUL; } else { return JvmProvider.OTHER; } }
/** * <p> * Decides if the Java version matches. * </p> * * @param versionPrefix * the prefix for the java version * @return true if matches, or false if not or can't determine */ private static boolean getJavaVersionMatches(String versionPrefix) { return isJavaVersionMatch(JAVA_VERSION_TRIMMED, versionPrefix); }
switch (getJvmProvider()) { case SUN: case ORACLE: case AZUL: if ((getJavaVersion() == JavaVersion.JAVA_1_7) || (getJavaVersion() == JavaVersion.JAVA_1_8)) { long max = Runtime.getRuntime().maxMemory(); return (max == Long.MAX_VALUE) || (max < MAX_COMPRESSED_OOPS_JAVA7_MEMORY); } else if (getJavaVersion() == JavaVersion.JAVA_1_6) { try { int subversionIndexStart = JAVA_VERSION_TRIMMED.indexOf('_');
/** * Returns the Java version. * * @return Returns the Java version. */ private static JavaVersion getJavaVersion() { if (getJavaVersionMatches("1.1")) { return JavaVersion.JAVA_1_1; } else if (getJavaVersionMatches("1.2")) { return JavaVersion.JAVA_1_2; } else if (getJavaVersionMatches("1.3")) { return JavaVersion.JAVA_1_3; } else if (getJavaVersionMatches("1.4")) { return JavaVersion.JAVA_1_4; } else if (getJavaVersionMatches("1.5")) { return JavaVersion.JAVA_1_5; } else if (getJavaVersionMatches("1.6")) { return JavaVersion.JAVA_1_6; } else if (getJavaVersionMatches("1.7")) { return JavaVersion.JAVA_1_7; } else if (getJavaVersionMatches("1.8")) { return JavaVersion.JAVA_1_8; } else if (getJavaVersionMatches("9")) { return JavaVersion.JAVA_1_9; } else { return JavaVersion.OTHER; } }