古いバージョンの JVM / JMX は specVersion に対して間違ったものを返すことが判明したため、@Kent が提供した手法を使用すると、はるかにうまく機能します。
getLogger().finest("Checking JVM version");
String specVersion = ManagementFactory.getRuntimeMXBean().getSpecVersion();
getLogger().log(Level.FINEST, "Specification Version from JMX = ''{0}''", specVersion);
// Because of bug in the above call, earlier versions of JMX reported the version of
// JMX and not Java (so 1.6 reports 1.0 - replacing with the call below fixes this problem
// and consistently returns the specification of the JVM that is being used.
String javaVersion = ManagementFactory.getRuntimeMXBean().getSystemProperties().get("java.specification.version");
getLogger().log(Level.FINEST, "java.specification.version found ''{0}''", javaVersion);