类 JarVersionUtil
java.lang.Object
net.sohelp.boot.dev.web.ops.updater.JarVersionUtil
JarVersionUtil 工具类用于获取 Java 类所在的 JAR 包版本信息。
提供多种方式获取版本号:
- 从 JAR 的 MANIFEST.MF 文件中读取 Implementation-Version;
- 通过 Class 对应的 Package 获取版本;
- 从 Maven 生成的 pom.properties 文件中解析版本。
- 从以下版本开始:
- 2025/11/6 8:46
- 作者:
- AaronFung
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static StringgetJarVersion(Class<?> clazz) 获取指定类所在 JAR 包中的 Implementation-Version 版本号。static StringgetVersionFromPackage(Class<?> clazz) 通过指定类对应的 Package 对象获取其实现版本(Implementation-Version)。static StringgetVersionFromPomProperties(Class<?> clazz, String groupId, String artifactId) 从 Maven 构建过程中生成的 pom.properties 文件中读取版本号。static void主函数示例:演示如何使用不同方法获取当前类的版本号。
-
构造器详细资料
-
JarVersionUtil
public JarVersionUtil()
-
-
方法详细资料
-
getJarVersion
获取指定类所在 JAR 包中的 Implementation-Version 版本号。 该方法通过类的 CodeSource 定位其所在的 JAR 文件,并尝试打开其中的 MANIFEST.MF, 然后从中提取 "Implementation-Version" 属性作为版本号。- 参数:
clazz- 指定要查询版本的类对象,不能为 null- 返回:
- 返回找到的版本字符串;如果未找到或发生异常则返回空字符串
- 抛出:
IOException- 如果在访问 JAR 或 MANIFEST 过程中出现 IO 异常
-
getVersionFromPackage
通过指定类对应的 Package 对象获取其实现版本(Implementation-Version)。 此方法依赖于 JVM 在类加载时正确填充 Package 的元数据。- 参数:
clazz- 指定要查询版本的类对象,不能为 null- 返回:
- 返回 Package 中定义的实现版本号;如果没有定义则返回空字符串
-
getVersionFromPomProperties
从 Maven 构建过程中生成的 pom.properties 文件中读取版本号。 通常该文件位于 JAR 内部路径 /META-INF/maven// /pom.properties。 - 参数:
clazz- 当前类对象,用于定位资源路径groupId- Maven 坐标中的 groupIdartifactId- Maven 坐标中的 artifactId- 返回:
- 成功读取到版本号则返回对应值;否则返回 null
-
main
主函数示例:演示如何使用不同方法获取当前类的版本号。 输出包括: - 通过 Package 获取的版本号; - 直接从 JAR 的 MANIFEST 获取的版本号。- 参数:
args- 启动参数(未使用)- 抛出:
IOException- 若调用 getJarVersion 方法时发生 IO 错误
-