news 2026/5/1 5:02:02

Java应用JDK及依赖库兼容问题扫描工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java应用JDK及依赖库兼容问题扫描工具

1. Java 应用 JDK 及依赖库兼容问题扫描工具(内容还需要修改)

1.1. 背景

Java 应用在升级 JDK 或 Java 项目依赖库版本后,可能会遇到依赖库兼容性问题,即“Jar Hell”:

项目中某个依赖库(例如 a.jar)所引用的其他库(例如 b.jar)中的类、方法、字段或注解等元素无法找到,或发生类型、修饰符变更等,导致代码执行时出现以下 Error 类型的异常,出现难以预料的结果

java.lang.IllegalAccessError java.lang.IncompatibleClassChangeError java.lang.NoClassDefFoundError java.lang.NoSuchFieldError java.lang.NoSuchMethodError

具体的异常情况可参考 Java 应用升级 JDK 或依赖库可能遇到的兼容性问题

由于依赖库 a.jar 已经完成编译,在 Java 项目编译阶段不会对依赖库 a.jar 重新编译,因此在编译阶段无法发现此类问题

同时由于测试环境与生产环境的交易量、触发频率差异,及测试难以覆盖全部场景等原因,在测试环境测试阶段可能无法发现此类问题,等到发布到生产环境后出现问题时才被发现

1.2. 工具作用

当前工具支持对以下问题进行查找

检查代码中被引用但找不到的类 检查代码中有使用但不存在或不允许访问的方法 检查代码中有使用但不存在或不允许访问的字段 检查类名完全相关的类

1.3. 环境依赖

需要使用 JDK8 及以上版本运行

使用 H2 本地数据库,可不依赖其他数据库

1.4. 快速检查模式

1.4.1. 检查内容

检查代码中被引用但找不到的类

1.4.2. 执行方式

1.4.3. 执行结果检查

执行结果生成在项目根目录的“_jacg_jar_compatibility”目录,每次会在该目录下生成一个新的目录

打开“1. 被引用的不存在的类信息 .xlsx”,该文件内容较多是正常的,在该文件中出现的被引用但找不到的类不是全部都需要处理,因为相关的代码可能并不会被执行到

可对“引用类名”“被引用的类名”列进行筛选,检查关注的包名下的相关类

1.4.4. 执行耗时

项目中的 jar 文件数量在 200~300 左右时,通常执行耗时大约 2~4 分钟,与实际的代码量有关

1.5. 完整检查模式

1.5.1. 检查内容

检查代码中有使用但不存在或不允许访问的方法 检查代码中有使用但不存在或不允许访问的字段 检查类名完全相关的类

1.5.2. 执行方式

1.5.3. 执行耗时

项目中的 jar 文件数量在 200~400 左右时,通常执行耗时大约 15~35 分钟,与实际的代码量有关

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 5:01:16

10、网站元语言(WML)的使用与实践

网站元语言(WML)的使用与实践 1. WML基础标签与特性 1.1 和 标签 在处理文本时,若不想某些文本段被剥离,可以使用 <nostrip> ... </nostrip> 标签。在处理过程的第8步,除了 <nostrip> 标签本身,该标签内的文本会被保留。而 <protect> 标…

作者头像 李华
网站建设 2026/4/25 10:09:01

阿里Qwen2.5-VL开源模型横空出世:多模态交互技术迎来范式突破

在人工智能多模态交互领域&#xff0c;阿里巴巴最新开源的Qwen2.5-VL视觉语言模型正引发行业变革。该模型通过创新性的技术架构&#xff0c;重新定义了机器理解视觉信息的能力边界&#xff0c;其在精准定位、动态视频处理和高效编码三大维度的突破&#xff0c;为金融、安防、文…

作者头像 李华
网站建设 2026/4/30 14:16:47

51、Solaris 文件与文件 I/O 详解

Solaris 文件与文件 I/O 详解 1. Solaris 文件概述 Unix 系统从诞生起就围绕进程和文件这两个基本实体构建。在 Solaris 中,文件是存储字节数组数据的实体,数据形式多样,如文本文件、二进制可执行文件、目录文件等。Solaris 支持多种文件类型,部分文件类型在内核层面定义…

作者头像 李华
网站建设 2026/5/1 5:01:44

10、网络资源保护:从基础加固到数据加密

网络资源保护:从基础加固到数据加密 1. 扫描操作与敏感数据加密概述 在完成选择后,点击“下一步”,扫描将立即开始。快速扫描的速度极快,扫描完成后,你看到的下一个窗口便是扫描结果窗口。若工具检测到异常,系统会提示你决定后续操作。 保护敏感数据的另一种有效方式是…

作者头像 李华
网站建设 2026/4/30 15:15:12

15、事件日志管理与安全保障

事件日志管理与安全保障 自定义应用日志报告错误处理 在请求自定义应用(customapp)报告时可能会出现错误。当前目录下的 customapp.conf 文件会指定一个日志文件组,进而明确需要检查的日志文件。 /logfiles/ 目录包含日志文件组的配置文件,这些文件定义了哪些日志文件…

作者头像 李华