可以使用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;
  }


希望它能澄清您的疑问

10-06 05:31