可以使用javax.lang.model.SourceVersion确定JRE版本吗?
如果是,那么哪一个是最好的?
int version = SourceVersion.latest().ordinal();
// or
int version = SourceVersion.latestSupported().ordinal();
凡是可以解释SourceVersion#latest()和SourceVersion#LatestSupported()何时不同的人,都将获得积分。
PS。我知道Getting Java version at runtime
最佳答案
SourceVersion.latest()
返回可以建模的最新源版本。SourceVersion.latestSupported()
返回当前执行环境完全支持的最新源版本。 {@code RELEASE_5}或更高版本
当我在java 7 sourceVersion srcCode 处检查源代码时
以下代码段说明了内部行为
public static SourceVersion latest() {
return RELEASE_7;
}
private static SourceVersion More ...getLatestSupported() {
try {
String specVersion = System.getProperty("java.specification.version");
if ("1.7".equals(specVersion))
return RELEASE_7;
else if ("1.6".equals(specVersion))
return RELEASE_6;
} catch (SecurityException se) {}
return RELEASE_5;
}
希望它能澄清您的疑问