首页 > 其他分享 >关于32.0.0-jre版本的Guava版本是否兼容1.8版本的jdk问题

关于32.0.0-jre版本的Guava版本是否兼容1.8版本的jdk问题

时间:2024-11-08 18:18:11浏览次数:3  
标签:文件 jre jdk JDK major version 版本 guava

在个依赖升级的过程中,snyk建议我将guava升级到32.0.0-jre这个版本,最后测试出来这个版本的guava只能部分兼容jdk1.8;

查看guava版本兼容jdk的版本,可以通过以下方式

1.windows下,按win+r输入cmd进入;

2.导航到JAR所在的目录,就是guava所在的路径

cd C:\path\to\your\jar

C:\path\to\your\jar 替换为包含 Guava JAR 文件的实际路径。

3.解压 JAR 文件: 使用 jar 命令(Java SDK 自带)解压 JAR 文件:

jar xf guava-32.0.0-jre.jar

注意:确保你已经安装了 Java JDK,并且 jar 命令可以在命令提示符中使用;

4.在第三步完成之后,需要去检查类文件版本;去验证其中的类文件是否是用 JDK 11 或更高版本编译的;

方法如下:

1.找到一个类文件:解压后会得到一个包含多个目录和类文件的文件夹结构。你可以随便选择一个 .class 文件,比如 SettableFuture.classListenableFuture.class;路径类似:

com/google/common/util/concurrent/SettableFuture.class

2.运行javap命令:使用 javap -verbose 查看该类文件的版本信息。在命令行中执行以下命令:

javap -verbose com/google/common/util/concurrent/SettableFuture.class | findstr "major version"

需要注意的是,路径需要换成你的实际路径;

其中

  • javap -verbose:反编译类文件并显示详细信息。
  • findstr "major version":过滤输出,只显示类文件的 "major version"

3.输出的版本号

ps:这个是我在确认32.0.0-jre时得到的结果,结合我的实际情况表明,

Guava 库中部分类保持了向后兼容:Guava 库可能将一些类(特别是核心工具类或不依赖新特性或模块的类)编译为 JDK 8 兼容的字节码(major version 52),以便与更广泛的 Java 版本兼容。这意味着 Guava 的一部分代码仍然可以在 JDK 8 上运行。

 minor version: 0
  major version: 52
  • major version 52:表示类文件是用 JDK 8 编译的,兼容 JDK 1.8。
  • major version 55:表示类文件是用 JDK 11 编译的,不兼容 JDK 1.8。
  • major version 57:表示类文件是用 JDK 13 编译的,依此类推。

最后我将guava 32.0.0-jre回退到了guava 30.1.1-jre版本;

ps:自己学习的一些记录,为自己参考;

标签:文件,jre,jdk,JDK,major,version,版本,guava
From: https://blog.csdn.net/weixin_56882678/article/details/143617862

相关文章

  • 居然都到 7.x版本了!!!雷池 WAF 社区版 7.x 的体验记录
    雷池WAF简介雷池WAF,英文名“SafeLine”,由长亭科技出品的一款Web应用防火墙,可以保护Web服务不受黑客攻击,早年就以”智能语义分析技术“闻名于安全行业。雷池社区版是长亭基于原有技术打造的一款开源WAF,主打简单易用,我猜的不错的话长亭应该是想借这种产品形态来占领中......
  • 访问浪潮带外BMC界面的远程控制台重定向(KVM)无法访问,提示JViewer未签名,mac电脑安装JD
    报错截图:安装JDK8下载JDK1.8的安装包JavaDownloads|Oracle下载的安装包双击按提示流程安装:按照完成以后、我们可以查看JDK的安装路径、在资源库/Library下面会出现一个Java的文件夹、目录层级如下:/Library/Java/JavaVirtualMachines/jdk-1.8.jdk打开终端窗口按快......
  • PostgreSQL技术大讲堂 - 第71讲:PostgreSQL 17 版本升级
     PostgreSQL技术大讲堂-第71讲,主题:PostgreSQL17版本升级讲课内容:PostgreSQL17版本升级  0、升级前准备工作  1、介绍小版本升级方式(pg12.2-to-pg12.20)  2、介绍大版本升级方式(pg12-to-pg17)  3、升级后验证   PostgreSQL版本更新很快,几乎......
  • .Net 与TLS版本的兼容性
    ‌.NETFramework与TLS版本的兼容性主要取决于.NETFramework的版本。‌.NETFramework版本与TLS版本的兼容性‌.NETFramework3.5及更早版本‌:这些版本不支持使用传输层安全性(TLS)系统默认版本作为加密协议‌1。‌.NETFramework4.0及以上版本‌:这些版本默认支持TLS......
  • ubuntu:旧版本配置apt源(ubuntu 21.10)
    一,旧版本ubuntu上的apt源不能用了#apt-getupdate忽略:1http://mirrors.aliyun.com/ubuntuhirsuteInRelease忽略:2http://mirrors.aliyun.com/ubuntuhirsute-securityInRelease忽略:3http://mirrors.aliyun.com/ubuntuhirsute-updatesInRelease忽略:4http://mirro......
  • 雷达目标检测cfar小白版本
     一编2024.11.7日 目前只是简单概念后续持续更**参考单元**和**保护单元**的概念###1.什么是保护单元?**保护单元**是指在检测过程中,紧邻目标检测单元的几个位置(也称距离单元)。这些单元的作用是**防止目标信号影响噪声估计**。例如,如果我们想在位置\(i\)检测......
  • 【汇总】Android NDK 各种版本
    前言全局说明> 一、说明: 二、网址最新版本:https://developer.android.google.cn/ndk/downloads?hl=zh-cn历史版: https://developer.android.google.cn/ndk/downloads/revision_history?hl=zh-cnAndroid版本和APIlevel等级对照:https://blog.csdn.net/Yu1441/articl......
  • .Net Framework项目引用.NetStandard标准库出现版本冲突解决办法
    这几天在边学边用CommunityToolKit.MVVM,AutoCAD开发项目,在尝试验证输入参数时,程序加载遇到了问题:System.IO.FileNotFoundException:未能加载文件或程序集"System.ComponentModel.Annotations,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"或它的某一......
  • DevOps业务价值流:版本规划的最佳实践
    初入公司,面对瀑布研发模式下的冗长周期与频繁返工,我率先尝试局部敏捷迭代,但成效有限。随后,推动全面敏捷化,从需求阶段即开始规划,虽方向正确,却遭遇版本规划难题。项目经理与产品经理对敏捷理解不深,导致项目频繁延期。为此,我构建详尽版本发布规划流程,亲自带领团队实施,历经半年试运......
  • 转 gitlab 社区版本 私有化部署
     gitlab 社区版本私有化部署,可以方便构建一个问题管理系统。issue系统部署方法如下: ####sample1 https://mp.weixin.qq.com/s?__biz=Mzg4Mzg3MDc4OA==&mid=2247484713&idx=1&sn=8f5b3e462e9ab0518c319057ee8d87c5&chksm=ce1b9547f39750f412ea0866ba13e7f6a638f1a48bf6......