为了账号安全,请及时绑定邮箱和手机立即绑定

在运行时获取Java版本

在运行时获取Java版本

慕仙森 2019-09-02 14:55:23
我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我使用以下条件:if (System.getProperty("java.version").startsWith("1.5.")) {    ...} else {    ...}这适用于其他JVM吗?有没有更好的方法来检查这个?
查看完整描述

2 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

这些文章似乎建议检查1.5或1.6前缀应该有效,因为它遵循正确的版本命名约定。


Sun技术文章

J2SE SDK / JRE版本字符串命名约定

版本1.5.0或5.0?

“J2SE还将版本号1.5.0(或1.5)保留在只有开发人员可见的某些地方,或版本号由程序解析的地方”

“ java.version系统属性”

版本1.6.0由开发人员使用

“Java SE将版本号1.6.0(或1.6)保留在某些只有开发人员可见的地方,或版本号由程序解析的地方。”

“ java.version系统属性”


查看完整回答
反对 回复 2019-09-02
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

java.version是每个JVM中存在的系统属性。它有两种可能的格式:


Java的8或更低:1.6.0_23,1.7.0,1.7.0_80,1.8.0_211

Java的9或更高:9.0.1,11.0.4,12,12.0.1

这是提取主要版本的技巧:如果它是1.x.y_z版本字符串,则提取字符串索引2处的字符。如果是x.y.z版本字符串,请将字符串剪切为其第一个点字符(如果存在)。


private static int getVersion() {

    String version = System.getProperty("java.version");

    if(version.startsWith("1.")) {

        version = version.substring(2, 3);

    } else {

        int dot = version.indexOf(".");

        if(dot != -1) { version = version.substring(0, dot); }

    } return Integer.parseInt(version);

}

现在,您可以更舒适地检查版本:


if(getVersion() < 6) {

    // ...

}


查看完整回答
反对 回复 2019-09-02
?
绝地无双

TA贡献1946条经验 获得超4个赞

最简单的方法(java.specification.version):


double version = Double.parseDouble(System.getProperty("java.specification.version"));


if (version == 1.5) {

    // 1.5 specific code

} else {

    // ...

}

或类似的东西(java.version):


String[] javaVersionElements = System.getProperty("java.version").split("\\.");


int major = Integer.parseInt(javaVersionElements[1]);


if (major == 5) {

    // 1.5 specific code

} else {

    // ...

}

或者如果你想打破它(java.runtime.version):


String discard, major, minor, update, build;


String[] javaVersionElements = System.getProperty("java.runtime.version").split("\\.|_|-b");


discard = javaVersionElements[0];

major   = javaVersionElements[1];

minor   = javaVersionElements[2];

update  = javaVersionElements[3];

build   = javaVersionElements[4];


查看完整回答
反对 回复 2019-09-02
  • 2 回答
  • 0 关注
  • 841 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信