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

news2024/12/25 13:15:18

今天查资料找到了除了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.coloradmin.cn/o/1144081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10.28总结

目录 一.发布作业 二.写作业 三.批改作业 一.发布作业 点击简答题时———listvie<String>题目列表会新增一个题目 保存该题时———— 获取TextArea的文本,为list当前选中的对象赋值 发布日期不能为过往日期&#xff0c;截止日期不能晚于发布日期。——为发布日期设置…

测试用例基础知识

目录 什么是测试用例&#xff1f; 测试用例格式 测试用例编写 测试用例的设计方法 等价类 边界值 判定表 因果图 流程图 场景法 错误推测法 什么是测试用例&#xff1f; 测试用例 (Test Case)是指对一项特定的软件产品进行测试任务的描述&#xff0c;体现测试方案、…

maven环境变量,安装源,本地仓库配置

1. maven环境变量 我这里用的是idea自带的maven 数值为&#xff1a; D:\software\computer_software\java\IDEAJ\IDEAJ2021.2.1\IntelliJ IDEA 2021.2.1\plugins\maven\lib\maven3\bin 2. 安装源更换为阿里云&#xff08;我不知道清华源是什么网址&#xff0c;网上也没查到&am…

人工智能基础_机器学习007_高斯分布_概率计算_最小二乘法推导_得出损失函数---人工智能工作笔记0047

这个不分也是挺难的,但是之前有详细的,解释了,之前的文章中有, 那么这里会简单提一下,然后,继续向下学习 首先我们要知道高斯分布,也就是,正太分布, 这个可以预测x在多少的时候,概率最大 要知道在概率分布这个,高斯分布公式中,u代表平均值,然后西格玛代表标准差,知道了 这两个…

redux connect组件在手工传入参数时报错

redux使用connect创建一个高阶组件时后&#xff0c;如果手工给该组件传入参数时会因参数不同会报错&#xff0c;此时可以如下处理&#xff1a;

流量攻击:如何有效利用网络漏洞

在网络世界中&#xff0c;攻击者采用各种方法来试图利用网络漏洞来实施攻击。这些攻击可能导致目标网站宕机、性能下降&#xff0c;或者更严重的数据泄露。在本文中&#xff0c;我们将从攻击者的角度探讨如何有效地利用流量攻击&#xff0c;以便更好地理解如何防范这些攻击。 利…

二叉树的后续遍历(迭代法)

迭代法实现二叉树的后续遍历 1、递归版本 public static void dfs(TreeNode root){if(rootnull){return;}if(root.left!null)dfs(root.left);if(root.right!null)dfs(root.right);System.out.println(root.val); }从递归版本可以看出我们第一步需要遍历完所有的左节点 这里我…

电脑提示找不到msvcp140.dll无法继续执行代码的4种解决办法

今天我想和大家分享的是关于找不到msvcp140.dll无法继续执行代码的4种解决办法。在我们日常的教学和工作中&#xff0c;有时候会遇到这样的问题&#xff0c;让我们感到困惑和无奈。那么&#xff0c;msvcp140.dll究竟是什么&#xff1f;为什么会丢失呢&#xff1f;接下来&#x…

【java学习—十】异常(1)

文章目录 1. 概念1.1. 前言1.2. java中的异常 2. java运行时异常举例3. 总结 1. 概念 1.1. 前言 任何一种程序设计语言设计的程序在运行时都有可能出现错误&#xff0c;例如除数为 0 &#xff0c;数组下标越界&#xff0c;要读写的文件不存在等等。     捕获错误最理想的是…

elementUI el-collapse 自定义折叠面板icon 和 样式 或文字展开收起

: :v-deep{.el-collapse-item__arrow {width: 40px;}.el-icon-arrow-right:before {content: "展开";font-size: 15px;font-family: heiti;color: #2295ff;font-weight: bold;}.el-collapse-item__arrow.is-active {transform: none;}.el-collapse-item__arrow.is-a…

在VMware Workstation Pro安装win7

1.下载 地址 2.创建虚拟机 3.选择需要安装的系统镜像 4.选择系统版本 通常情况下选择 Windows 7 Ultimate 旗舰版&#xff0c;点击下一步&#xff0c;若提示产品密钥&#xff0c;则忽略 5.虚拟机命名 虚拟机保存位置保持默认即可&#xff0c;如果有需求可以更换位置 6…

韦东山D1S板子——汇编启动代码第一行分析(.long 0x0300006f)

1、汇编启动源码 2、分析二进制&#xff1a;0x0300006f 2.1、反汇编代码 2.2、jal指令 jal指令的作用&#xff1a;跳转到当前PC值偏移offset处执行&#xff0c;其中offset由jal指令的bi[31:12]表示&#xff1b; 2.3、分析指令&#xff1a;j 20030 <reset> j 20030 //伪…

一、【海报合成的流程】

文章目录 主体创意草图素材拼图光影调色 主体 首先联想主体相关的关键词 创意 将联想到的关键词&#xff0c;串起来生成创意 草图 结合主体跟创意&#xff0c;我们先绘制一幅草图。草图可以是简单的图形&#xff0c;然后组成大概的结构布局。 素材 根据草图去寻找我们需…

【易售小程序项目】后端部署、Uniapp项目Web部署

Uniapp项目Web打包部署 为什么不部署小程序 因为小程序部署审核比较严格&#xff0c;还需要备案&#xff0c;而且我现在还没有完全开发完成&#xff08;研究生开学之后&#xff0c;基本没有时间开发了&#xff09;&#xff0c;到时候再摸索一下吧。之所以还没有开发完成我就部…

【计算机网络】应用层——HTTPS协议

目录 HTTPS协议加密对称加密非对称加密 数据摘要&#xff08;数据指纹&#xff09;HTTPS安全问题对称加密非对称加密 证书客户端认证查看客户端证书 解决数据安全问题&#xff08;引入证书&#xff09; HTTPS协议 HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过…

Promise 对象与 Promises/A+ 规范

目录 前言 什么是 Promise 对象&#xff1f; Promises/A 规范是什么&#xff1f; 逻辑 示例 用法 结论 参考资料 前言 在现代JavaScript编程中&#xff0c;Promise对象是一种用于处理异步操作的重要工具。它们被广泛用于处理网络请求、文件读取、定时任务等异步操作。本…

学习笔记---更进一步的双向链表专题~~

目录 1. 双向链表的结构&#x1f98a; 2. 实现双向链表&#x1f41d; 2.1 要实现的目标&#x1f3af; 2.2 创建初始化&#x1f98b; 2.2.1 List.h 2.2.2 List.c 2.2.3 test.c 2.2.4 代码测试运行 2.3 尾插打印头插&#x1fabc; 思路分析 2.3.1 List.h 2.3.2 List.…

一张图系列 - “kv cache“

我觉得回答这个问题需要知道3个知识点&#xff1a; 1、multi-head-attention是如何计算的&#xff1f;attention的数学公式&#xff1f; kv cache是如何存储和传递的&#xff1f; 2、kv cache 的原理步骤是什么&#xff1f;为什么降低了消耗&#xff1f; 3、kv cache 代码模…

Matlab神经网络工具箱——一个例子搞定神经网络算法

本文用到的数据来自于matlab神经网络 数据的文件提取码以及链接会放在评论区 分析数据 这里大致是整个数据的样子&#xff0c;下面来分析数据&#xff1a; ①整个数据一共有401个输入&#xff0c;这里体现的也就是有401种吸光度 ②前五十组数据&#xff0c;既有输入也有输出&a…