类 JarVersionUtil

java.lang.Object
net.sohelp.boot.dev.web.ops.updater.JarVersionUtil

public class JarVersionUtil extends Object
JarVersionUtil 工具类用于获取 Java 类所在的 JAR 包版本信息。 提供多种方式获取版本号: - 从 JAR 的 MANIFEST.MF 文件中读取 Implementation-Version; - 通过 Class 对应的 Package 获取版本; - 从 Maven 生成的 pom.properties 文件中解析版本。
从以下版本开始:
2025/11/6 8:46
作者:
AaronFung
  • 构造器详细资料

    • JarVersionUtil

      public JarVersionUtil()
  • 方法详细资料

    • getJarVersion

      public static String getJarVersion(Class<?> clazz) throws IOException
      获取指定类所在 JAR 包中的 Implementation-Version 版本号。 该方法通过类的 CodeSource 定位其所在的 JAR 文件,并尝试打开其中的 MANIFEST.MF, 然后从中提取 "Implementation-Version" 属性作为版本号。
      参数:
      clazz - 指定要查询版本的类对象,不能为 null
      返回:
      返回找到的版本字符串;如果未找到或发生异常则返回空字符串
      抛出:
      IOException - 如果在访问 JAR 或 MANIFEST 过程中出现 IO 异常
    • getVersionFromPackage

      public static String getVersionFromPackage(Class<?> clazz)
      通过指定类对应的 Package 对象获取其实现版本(Implementation-Version)。 此方法依赖于 JVM 在类加载时正确填充 Package 的元数据。
      参数:
      clazz - 指定要查询版本的类对象,不能为 null
      返回:
      返回 Package 中定义的实现版本号;如果没有定义则返回空字符串
    • getVersionFromPomProperties

      public static String getVersionFromPomProperties(Class<?> clazz, String groupId, String artifactId)
      从 Maven 构建过程中生成的 pom.properties 文件中读取版本号。 通常该文件位于 JAR 内部路径 /META-INF/maven///pom.properties。
      参数:
      clazz - 当前类对象,用于定位资源路径
      groupId - Maven 坐标中的 groupId
      artifactId - Maven 坐标中的 artifactId
      返回:
      成功读取到版本号则返回对应值;否则返回 null
    • main

      public static void main(String[] args) throws IOException
      主函数示例:演示如何使用不同方法获取当前类的版本号。 输出包括: - 通过 Package 获取的版本号; - 直接从 JAR 的 MANIFEST 获取的版本号。
      参数:
      args - 启动参数(未使用)
      抛出:
      IOException - 若调用 getJarVersion 方法时发生 IO 错误