Skip to content

Instantly share code, notes, and snippets.

@asdf913
Last active January 22, 2023 05:16
Show Gist options
  • Save asdf913/1bdcec516f7600cbf0fa2ef55d045f4e to your computer and use it in GitHub Desktop.
Save asdf913/1bdcec516f7600cbf0fa2ef55d045f4e to your computer and use it in GitHub Desktop.
Get Java Version As Integer
public final class JavaVersionUtil12 {
private JavaVersionUtil12() {
}
public static Integer getJavaVersionAsInteger() {
//
if (forName("java.lang.WrongThreadException") != null) {
//
return new Integer(19);
//
} else if (forName("java.net.spi.InetAddressResolver") != null) {
//
return new Integer(18);
//
} else if (forName("java.util.random.RandomGeneratorFactory") != null) {
//
return new Integer(17);
//
} else if (forName("java.net.UnixDomainSocketAddress") != null) {
//
return new Integer(16);
//
} else if (forName("java.security.interfaces.EdECKey") != null) {
//
return new Integer(15);
//
} else if (forName("java.io.Serial") != null) {
//
return new Integer(14);
//
} else if (forName("com.sun.source.util.ParameterNameProvider") != null) {
//
return new Integer(13);
//
} else if (forName("com.sun.source.doctree.SystemPropertyTree") != null) {
//
return new Integer(12);
//
} else if (forName("java.net.http.HttpClient") != null) {
//
return new Integer(11);
//
} else if (forName("com.sun.source.doctree.SummaryTree") != null) {
//
return new Integer(10);
//
} else if (forName("java.lang.Module") != null) {
//
return new Integer(9);
//
} else if (forName("java.util.stream.Stream") != null) {
//
return new Integer(8);
//
} else if (forName("java.nio.file.attribute.FileAttribute") != null) {
//
return new Integer(7);
//
} else if (forName("java.io.Console") != null) {
//
return new Integer(6);
//
} else if (forName("java.lang.ProcessBuilder") != null) {
//
return new Integer(5);
//
} else if (forName("java.nio.ByteBuffer") != null) {
//
return new Integer(4);
//
} else if (forName("java.lang.reflect.InvocationHandler") != null) {
//
return new Integer(3);
//
} else if (forName("java.util.Collection") != null) {
//
return new Integer(2);
//
} else if (forName("java.lang.Object") != null) {
//
return new Integer(1);
//
} // if
//
return null;
//
}
private static Class forName(final String className) {
//
try {
//
return Class.forName(className);
//
} catch (final ClassNotFoundException e) {
//
return null;
//
} // try
//
}
public static void main(final String[] args) {
//
System.out.println(getJavaVersionAsInteger());
//
}
}
@asdf913
Copy link
Author

asdf913 commented Jan 22, 2023

Rename the JavaVersionUtil.class.jpg into JavaVersionUtil.class
JavaVersionUtil class

Compilation
C:\jdk1.2.2\bin\javac.exe JavaVersionUtil.java

Run
C:\jdk1.2.2\bin\java JavaVersionUtil
C:\jdk1.3.1_28\bin\java JavaVersionUtil
C:\j2sdk1.4.2_19\bin\java JavaVersionUtil
"C:/Program Files (x86)/Java/jdk1.5.0_22/bin/java" -cp . JavaVersionUtil
"C:/Program Files (x86)/Java/jdk1.6.0_45/bin/java" -cp . JavaVersionUtil
"C:/Program Files (x86)/Java/jdk1.7.0_80/bin/java" -cp . JavaVersionUtil
"C:/Program Files (x86)/Java/jdk1.8.0_361/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk1.8.0_361/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-9.0.4/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-10.0.2/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-11/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-12.0.2/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-13.0.2/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-14.0.2/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-15.0.2/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-16.0.2/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-17/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-18.0.2.1/bin/java" -cp . JavaVersionUtil
"C:/Program Files/Java/jdk-19/bin/java" -cp . JavaVersionUtil

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment