EMT4J——Java版本迁移检测工具

简介: EMT4J是JDK版本升级检测工具,支持Java 8至17的迁移分析,扫描项目依赖并生成兼容性报告,帮助开发者提前发现API变更、废弃方法等问题,适用于Windows与Linux环境,提升升级效率。

相关文章介绍可以阅读这篇了解下:https://developer.aliyun.com/article/988484

  • 仓库:https://github.com/adoptium/emt4j
  • 总的来说,EMT4J 就是给开发者升级JDK版本时使用的检测工具,方便排错升级后的一些新特性和方法变更等。

  • 下面就介绍下怎么使用,目前 v0.8.0 版本是支持 Windows 、Linux 环境使用的

https://github.com/adoptium/emt4j/releases/tag/v0.8.0

image.png

  • 下面就介绍下在 Windows 下 EMT4J 工具的使用,Linux环境使用是类似的

  • 如:项目用到的是Java8,现在想升级到到 Java 17,需要做哪些调整?通过 EMT4J 工具对项目所用到的所有插件和三方包依赖进行兼容性扫描,把一些常用的升级问题给汇总成一个报告,提前检测下升级带来的改动点和注意事项等。

  • 本地需要提前下载好 Java 17,有关 openJDK 的下载安装可以访问我之前写的这篇文章:openJDK下载

  • 安装好 JDK 17后,不用配置环境变量,使用 EMT4J 工具的使用不需要

image.png

  • 这里拿若依项目来检测,在项目目录下创建 vmoptions 文件夹,用于配置不同服务的jvm参数

image.png

  • 如:现在需要给 ruoyi-framework 使用工具检测,就需要在 vmoptions 文件夹中创建同名的文件夹

image.png

  • 文件夹下创建对应的 cgf 文件名

image.png

  • ruoyi-framework.cfg 写入:

-Xms: 设置 初始 堆大小。
-Xms512m (初始堆 512MB)
-Xmx: 设置 最大 堆大小。
-Xmx2048m (最大堆 2048MB/2GB)
参考:Java 命令行参数详解:系统属性、JVM 选项与应用配置

-Xms1024m -Xmx2048m
  • 执行EMT4J命令
-f 8:表示从JDK 8开始
-t 17:表示要升级到JDK 17
-j D:\jdk-17:指定目标JDK 17的安装路径
D:\jdk-17 E:\xdr-project\RuoYi-Vue:指定应用包和配置文件的根目录
cd E:\emt4j\emt4j\bin
E:\emt4j-0.8.0\bin>analysis.bat -f 8 -t 17 -j D:\jdk-17 E:\xdr-project\RuoYi-Vue
  • 生成报告后

image.png

image.png

image.png

  • 大多都是一些第三方包或者Tomcat漏洞之类的,或者弃用的属性方法等
  • 如果是多个服务需要使用工具检测,就同理按照上面的方式在 vmoptions 中新增对应的服务名文件夹和 cfg 文件
  • 当然也可以使用Maven插件的方式去检测,仓库中也有对应的使用说明
目录
相关文章
|
存储 算法
数据结构-概念版(四)
数据结构-概念版
626 0
|
Java Linux Windows
java 图片上绘制文字Graphics2D linux 中文乱码
java 图片上绘制文字Graphics2D linux 中文乱码
922 0
|
11月前
|
XML 安全 Java
EMT4J定制规则版:Java 8→17迁移兼容性检测与规则优化实战
EMT4J是一款Java版本迁移兼容性检测工具,支持从Java 8→11和11→17的升级检查。通过预设规则扫描代码或JAR包,识别API废弃、模块系统、JVM参数等潜在不兼容问题,生成可视化报告,帮助开发者提前修复风险,确保应用平稳迁移。
661 2
|
XML Oracle Java
如何在Java 9以上版本中解决找不到类JAXBException
升级到新的JDK 你会突然发现原来可以运行的项目突然不能启动了, 报形如 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.PropertyException 的类找不到的错。
3308 0
|
7月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
52131 73
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
2月前
|
人工智能 安全 数据挖掘
阿里千问办公价格一览:个人免费版、标准版、高级版套餐权益对比
阿里千问办公QwenWork提供免费版(注册送2000积分,每日登录可领)与付费版(个人版、企业标准版198元/人/月、旗舰版等),支持多档模型、积分体系及VPC部署,详情见官网。阿里千问办公官网:https://t.aliyun.com/U/JNKJuO 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
2033 0
|
消息中间件 NoSQL Java
spring boot2升级boot3指南
本文介绍了如何将Spring Boot 2.x升级至Spring Boot 3.x,涵盖使用OpenRewrite自动化重构工具进行代码转换、依赖版本升级、配置属性调整及常见问题处理等内容,帮助开发者高效完成升级工作。
3131 7
|
12月前
|
人工智能 监控 安全
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
259 0
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
7902 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API