当前位置: 首页 > 面试题库 >

在运行时获取Java版本

方坚壁
2023-03-14
问题内容

我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我正在使用以下条件:

if (System.getProperty("java.version").startsWith("1.5.")) {
    ...
} else {
    ...
}

这对其他JVM有用吗?有更好的方法来检查吗?


问题答案:

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) {
    // ...
}


 类似资料:
  • 问题内容: 我想知道是否有可能在运行时检索该类来自的jar的版本号? 我知道可以找到该类来自的jar: 但是版本呢? (假设其不在文件名中:) 问题答案:

  • 我想知道是否可以在运行时检索类的来源的jar的版本号? 我知道有可能找到类的来源: 但是一个版本呢? (假设它不在文件名中:))

  • 问题内容: 我注意到在Maven工件的JAR中,project.version属性包含在两个文件中: 是否有建议的方式在运行时读取此版本? 问题答案: 你无需访问特定于Maven的文件即可获取任何给定库/类的版本信息。 你可以简单地使用来获取存储在中的版本信息。幸运的是,足够聪明,不幸的是,默认情况下,也不将正确的信息写入清单! 相反,必须修改的设置元素和,如下所示: 理想情况下,应将此配置放入公

  • 如何在运行Tomcat时获取包版本? 我尝试getClass().getPackage().GetImplementationVersion(),但这总是返回。我想这是因为我的war还没有打包,而Tomcat执行了.classes(又名分解的war)。存在于终战中,但不存在于文件夹中 java.lang.Package 相关的是在运行时获取Maven工件版本 更新。之前我已经添加了war构建的配置

  • 是否可能在运行时检索特定maven依赖项的版本? 例如。对于pom.xml: 我想检索具有工件ID的特定依赖项的版本。

  • 问题内容: 我必须为Java类简介创建一个项目,并在最终解决语法错误之后,单击播放或保存按钮时,该程序出现运行时错误。 每当我单击播放按钮开始播放文件中的音乐时,都会出现此错误: 当我单击保存按钮时,出现此错误: 谁能告诉我什么地方出了问题或如何解决?任何帮助,将不胜感激,我在这个东西上有点慢:) 问题答案: 对于播放按钮错误:通过计数行(75-> 86),我推断出该语句中的错误 这是因为表(字段