У меня похожая часть функциональности, то есть обнаружение устаревшей версии Java.Я обнаружил ту же проблему, т. Е. В java-версии слишком много вариаций, особенно потому, что мои потребности были на уровне детализации основной версии.Я обнаружил, что системное свойство java.vm.specification.version было именно тем, что было нужно (и, возможно, тем, что вам действительно нужно).Я решил это во время выполнения в своем приложении, однако то, что было сделано здесь, можно было легко применить как небольшое автономное приложение.
final String javaVersion = System.getProperty("java.vm.specification.version");
final String[] versionInfo = StringUtils.split(javaVersion, ".");
if (Integer.parseInt(versionInfo[0]) == 1 && Integer.parseInt(versionInfo[1]) < 8) {
logger.error("Java 1.8 required. Unable to run with Java " + javaVersion);
throw new IllegalArgumentException("Java 1.8 required. Runtime java version: " + javaVersion);
}