当前位置: 首页 > article >正文

JDK API Diff Report Generator-Java版本对比工具

今天查资料找到了除了EMT4J之外,其他可以用于Java版本迁移的工具。

这里简单的记录一下。

非Java er,有不同意见欢迎评论区交流。


JDK API Diff Report Generator

JDK API Diff是一个用于比较不同Java版本API区别的工具。github地址在这里。

例如,可以使用此工具比较OpenJDK 9和OpenJDK 10,OpenJDK 9和Oracle JDK 9等。

在项目的 docs 目录下内置了许多OpenJDK之间版本的对比:

ITS之间              :8to11,8to17,11to17

相邻版本之间的 :8to9,一直到17to18版本的都有

检测结果

这里以8to11为例解释检测结果:

先是一个表格显示对比的两个版本,创建时间,忽略哪些类等等。

可以看到这个检测结果忽略了内部类,我想看到内部类的变化,因此选择了重新生成检测结果。

编译

下载项目之后,要先一些进行配置才能编译。

toolchain

sudo vim ~/.m2/toolchains.xml

添加以下内容,因为我只打算比较LTS版本,所以这里选了8,11,17三个版本。

如果要比较其他版本,修改<version>和<jdkHome>里的内容。

<toolchains xmlns="http://maven.apache.org/TOOLCHAINS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/TOOLCHAINS/1.1.0 http://maven.apache.org/xsd/toolchains-1.1.0.xsd">
    <toolchain>
        <type>jdk</type>
        <provides>
		<version>8</version>
		<vendor>openjdk</vendor>	
        </provides>
        <configuration>
            <jdkHome>/usr/lib/jvm/java-8-openjdk-amd64</jdkHome>
        </configuration>
    </toolchain>
    <toolchain>
        <type>jdk</type>
        <provides>
		<version>11</version>
		<vendor>openjdk</vendor>
        </provides>
        <configuration>
            <jdkHome>/usr/lib/jvm/java-1.11.0-openjdk-amd64</jdkHome>
        </configuration>
    </toolchain>
    <toolchain>
        <type>jdk</type>
        <provides>
		<version>17</version>
		<vendor>openjdk</vendor>
        </provides>
        <configuration>
            <jdkHome>/usr/lib/jvm/java-1.17.0-openjdk-amd64</jdkHome>
        </configuration>
    </toolchain>
</toolchains>

pom.xml

修改<jdk1>和<jdk2>里的内容,改成要比较的两个jdk版本,只能选toolchains.xml里配置过的版本。

忽略的部分

忽略的部分是红色框出来的部分,可以看到默认是注释状态,这里不需要额外出来。

编译语句

mvn clean install

项目会将对应的jdk版本全部打包成jar包,通过对比jar包的区别,来生成差别html。

遇到的问题

Missing header in: jdk-api-diff/LICENSE.txt

这个我也没查明白,所以把pom.xml里的license-maven-plugin插件注掉解决的。

java.io.FileNotFoundException: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/javaws.jar

项目里测试的版本是8u301,我目前在用的版本是8u382,jdk有一些区别,所以会有这个报错。

这里注释掉相关代码解决。

ps:jfxrt.jar注释掉是因为这个也报错了,这个里不再粘贴报错信息。

编译结果

对比的结果在target目录下,jdk-api-diff.html。

结果将近200m,比例子里的50m多了很多。

可以看到,这份检测结果里有内部类。 

 


http://www.kler.cn/a/107145.html

相关文章:

  • odoo 17 后端路由接口认证自定义
  • MySQL重难点(一)索引
  • Axure网络短剧APP端原型图,竖屏微剧视频模版40页
  • 如何从头开始构建神经网络?(附教程)
  • 系统架构设计师论文
  • MTSET可溶于DMSO、DMF、THF等有机溶剂,并在水中有轻微的溶解性,91774-25-3
  • JVM性能优化 —— 类加载器,手动实现类的热加载
  • 【Apache Flink】基于时间和窗口的算子-配置时间特性
  • 软考高项-成本管理
  • uniapp开发app,在ios真机上出现的css样式问题
  • 基于SSM的航班订票管理系统的设计与实现
  • 开始学习Go编程
  • 深度学习系列52:多目标跟踪
  • VMware16,运行虚机后E盘下就会产生一个奇怪的文件夹
  • Diffusion Models视频生成-博客汇总
  • 【计算机网络】从输入URL到页面都显示经历了什么??
  • 【计算机视觉】SimSiam 讲解
  • 在VMware Workstation Pro安装win7
  • 数据库系统原理与实践 笔记 #5
  • Kafka-Java二:Spring实现kafka消息发送的ack机制
  • JoySSL-新兴国产品牌数字证书
  • Error: no matching distribution found for tensorflow-cpu==2.6.*
  • docker - win10 家庭版 开始虚拟化
  • 基于SSM的高校图书馆设计与实现
  • 【LeetCode每日一题合集】2023.10.16-2023.10.22(只出现一次的数字Ⅲ)
  • 【proteus】8086 写一个汇编程序并调试