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插件的方式去检测,仓库中也有对应的使用说明
目录
相关文章
|
5月前
|
XML 安全 Java
EMT4J定制规则版:Java 8→17迁移兼容性检测与规则优化实战
EMT4J是一款Java版本迁移兼容性检测工具,支持从Java 8→11和11→17的升级检查。通过预设规则扫描代码或JAR包,识别API废弃、模块系统、JVM参数等潜在不兼容问题,生成可视化报告,帮助开发者提前修复风险,确保应用平稳迁移。
432 2
|
安全 Java 编译器
阿里巴巴Dragonwell
阿里巴巴Dragonwell
|
XML Oracle Java
如何在Java 9以上版本中解决找不到类JAXBException
升级到新的JDK 你会突然发现原来可以运行的项目突然不能启动了, 报形如 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.PropertyException 的类找不到的错。
3137 0
|
8月前
|
消息中间件 NoSQL Java
spring boot2升级boot3指南
本文介绍了如何将Spring Boot 2.x升级至Spring Boot 3.x,涵盖使用OpenRewrite自动化重构工具进行代码转换、依赖版本升级、配置属性调整及常见问题处理等内容,帮助开发者高效完成升级工作。
2731 7
|
5月前
|
存储 JavaScript 前端开发
JavaScript的八大数据类型
JavaScript 数据类型是前端开发的基石,共8种,分基本与引用两大类。基本类型(Number、String、Boolean、Undefined、Null、Symbol、BigInt)存于栈中,值不可变;引用类型(Object,含数组、函数等)存于堆中,按地址访问。二者在赋值与比较时行为不同。`typeof` 可判多数类型,但 `null` 例外(返回 "object"),精准判断推荐 `Object.prototype.toString.call()`。
428 2
|
6月前
|
人工智能 监控 安全
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
170 0
Veeam Recovery Orchestrator 13.0 发布 - 恢复编排
|
8月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
6772 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
9月前
|
Web App开发 开发框架 前端开发
Playwright与PyTest结合指南
本教程介绍如何结合Playwright与PyTest进行Web自动化测试,涵盖环境搭建、测试编写、配置管理、Fixtures使用及高级技巧,助你高效构建稳定、可维护的测试方案。
|
Oracle Java 关系型数据库
EMT4J——让 Java 应用升级更轻松
EMT4J 是什么?如何使用 EMT4J 工具进行 Java 应用升级?
EMT4J——让 Java 应用升级更轻松
|
Java 编译器 测试技术
全面理解Maven Compiler Plugin-Maven编译插件
【10月更文挑战第16天】
4003 1