关于IntelliJ IDEA 2024.1版本更新的问题
希望文章能给到你启发和灵感~
感谢支持和关注~
阅读指南
- 序幕
- 一、基础环境说明
- 1.1 硬件环境
- 1.2 软件环境
- 二、起因
- 三、解决
- 四、总结
序幕
近期,IntelliJ IDEA 推出了全新2024版本,相信很多编程的爱好者或者刚接触编程的小伙伴都会迫不及待更新和下载;版本升级毋庸置疑,在很多功能和体验上肯定是有很多提升的,这里博主就不多概述,主要记录一下前几天遇到的一个关于JDK的兼容问题;让一些小伙伴不踩坑;
一、基础环境说明
考虑环境因素,大家适当的对比自己的软硬件环境情况分析~
1.1 硬件环境
MacOS Monterey 版本 12.6.8 Apple M1
(博主环境)
Windows 11 家庭版
(问题环境)
1.2 软件环境
IntelliJ IDEA 2020.1.2
(博主版本)
IntelliJ IDEA 2023.3
(博主版本)
IntelliJ IDEA 2024.1
(问题环境idea版本)
JDK8
二、起因
这里博主列出了两个硬件环境,因为在mac下,博主使用IntelliJ IDEA 2020.1.2和IntelliJ IDEA 2023.3,都能很好的适配JDK8的代码执行;
但是Windows 11 家庭版下,IDEA 2023.3能正常适配运行代码,但是新版的IntelliJ IDEA 2024.1却无法运行;当执行项目时,提示大致错误信息如下:
Abnormal build process termination:
"C:\Program Files\Java\jdk1.8.0_72\bin\java.exe" -Xmx700m -Djava.awt.headless=true "-Djna.boot.library.path=D:\idea\IntelliJ IDEA 2024.1/lib/jna/amd64" -Djna.nosys=true -Djna.noclasspath=true --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Didea.IntToIntBtree.page.size=32768 -Djdt.compiler.useSingleThread=true -Daether.connector.resumeDownloads=false -Dio.netty.initialSeedUniquifier=1226091530544792288 -Dfile.encoding=GBK -Duser.language=zh -Duser.country=CN -Didea.paths.selector=IntelliJIdea2024.1 "-Didea.home.path=D:/idea/IntelliJ IDEA 2024.1" -Didea.config.path=C:/Users/32403/AppData/Roaming/JetBrains/IntelliJIdea2024.1 -Didea.plugins.path=C:/Users/32403/AppData/Roaming/JetBrains/IntelliJIdea2024.1/plugins -Djps.log.dir=C:/Users/32403/AppData/Local/JetBrains/IntelliJIdea2024.1/log/build-log "-Djps.fallback.jdk.home=D:/idea/IntelliJ IDEA 2024.1/jbr" -Djps.fallback.jdk.version=17.0.10 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/32403/AppData/Local/JetBrains/IntelliJIdea2024.1/compile-server/indi_eaf41962/_temp_ -Djps.backward.ref.index.builder=true "-Djps.kotlin.home=D:\idea\IntelliJ IDEA 2024.1\plugins\Kotlin\kotlinc" -Dkotlin.incremental.compilation=true -Dkotlin.incremental.compilation.js=true -Dkotlin.daemon.ena
错误信息非常长,博主没有细看,只是看了内容中包括了部分JDK和IDEA版本的字眼;
add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens
一开始只是以为JDK的配置问题,重新设置了JDK的环境变量,并在IDEA中配置对应的JDK信息,包括清理缓存和重启idea,但是问题依旧;
查阅了官方的兼容支持信息,在2024.1的版本下,其实是能看到兼容的;但是同套代码同JDK环境
,在不同的版本Idea下的反馈不一样;就很让人费解!
于是乎,咨询了技术售后,大致的反馈是:
emm,说的比较官方,我们这里只能认为可能的原因是2024版对JDK8的适配度可能不够
;
三、解决
【1】既然新版本适配不够,我们就将版本下降到了2023版;
【2】或者可以将JDK版本升级到JDK17等更高版本;
工程代码对JDK有要求的,选【1】;没要求的选【2】;更改后代码即可运行
;
四、总结
其实博主也有看到一些博主,似乎也正常安装idea2024,并且在JDK8运行了,但是环境不同,情况也不同
所以关于这个问题有几点大家注意一下,作为参考即可;
【1】该问题出现在window11系统下,博主只有mac没有window,问题是在帮人部署时遇到的,所以并没有做太多尝试,不排除也可能是操作系统原因,也许windows11之前的版本可行;
【2】对于很多软件的更新,还是建议不要马上装最新版本,不是说新的不好,毕竟作为程序开发者来说,稳定才是王道,新品总是需要打磨一下的;否则少不了踩坑和bug的情况需要解决;
【3】任何类型软件的版本选择上,可以低一个版本使用,或者明确官方说明该版本是stable稳定版的下载,正常都不会有错;
【4】兼容性问题最磨人,多研究一下官网说明和其他人的使用情况来定位问题;
相关文章:

关于IntelliJ IDEA 2024.1版本更新的问题
希望文章能给到你启发和灵感~ 感谢支持和关注~ 阅读指南 序幕一、基础环境说明1.1 硬件环境1.2 软件环境 二、起因三、解决四、总结 序幕 近期,IntelliJ IDEA 推出了全新2024版本,相信很多编程的爱好者或者刚接触编程的小伙伴都会…...

双层循环和循环语句
echo 打印 echo -n 表示不换行输出 echo -e 表示输出转义字符 echo \b 相当于退格键(backspace) echo \n 换行,相当于回车 echo \f 换行,换行后的新行的开头连着上一行的行尾 echo \t 相当于tab健 (…...

【Codesys】-计算开机通电运行时间,累计正常使用时间,故障停机时间
应客户要求,在程序添加了这个用来计算开机运行时间,原理就是取当前时间减去一开始记录的时间,没什么特别要求,记录一下使用的变量类型和数据写法,防止忘记了。 下文只写了一个开机通电运行时间的写法,累计…...

LINUX系统编程:线程的概念
目录 1.线程的概念 2.线程的理解 3.怎么做到划分代码的 本文主要介绍,在LIUNX下的线程。 1.线程的概念 在很多的书上的你可能见过这样的。 线程是进程内部的一个执行分支,线程是cpu调度的基本单位。 加载到内存的程序叫做进程。修正:进…...

如何更换OpenHarmony SDK API 10
OpenHarmony社区已经发布OpenHarmony SDK API 10 beta版本,有些 Sample案例 也有需要API10。那么如何替换使用新的OpenHarmony SDK API 10呢?本文做个记录。 1、如何获取OpenHarmony SDK 1.1 每日构建流水线 可以从OpenHarmony每日构建站点获取最新的…...

Java | Leetcode Java题解之第155题最小栈
题目: 题解: class MinStack {Deque<Integer> xStack;Deque<Integer> minStack;public MinStack() {xStack new LinkedList<Integer>();minStack new LinkedList<Integer>();minStack.push(Integer.MAX_VALUE);}public void …...

大润发超市购物卡怎么用?
收到大润发超市的礼品卡以后,我才发现,最近的大润发也得十来公里 为了100块的大润发打车也太不划算了 叫外送也不在配送范围内 最后没办法,在收卡云上出掉了,还好最近价格不错,也不亏,收卡云的到账速度也…...

【ai】tx2-nx:搭配torch的torchvision
微雪的教程pytorch_version 1.10.0 官方教程安装torch官方教程 依赖项 nvidia@tx2-nx:~/twork/03_yolov5$ $ sudo apt-get install libjpeg-dev zlib1g-dev lib...
深入浅出MyBatis:全面解析与实战指南
MyBatis 是一个优秀的持久层框架,它简化了 Java 应用与关系数据库之间的映射。对于大多数 Java 开发者而言,掌握 MyBatis 是必不可少的一部分。本文将详细介绍 MyBatis 的各个方面,包括其基本原理、配置、操作、动态 SQL、插件机制和高级应用…...

好用的linux一键换源脚本
最近发现一个好用的linux一键换源脚本,记录一下 官方链接 大陆使用 bash <(curl -sSL https://linuxmirrors.cn/main.sh)# github地址 bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/ChangeMirrors.sh) # gitee地址 …...
机器人----控制方式
位置控制 点位控制 点到点--PTP 只关心起点和目标点,不关心走过的轨迹。 连续轨迹控制 CP(continus path) eg:焊接,切割。 力控制 使用多大的力进行控制。 eg:用多大的力写字。...
json的特点
JJSON是一种轻量级的数据交换格式,它基于JavaScript编程语言的一个子集,采用完全独立于语言的文本格式,结构化程度高。 JSON的主要特点包括: 轻量级:JSON的格式紧凑,易于传输和解析。 结构化:…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 连续字母长度(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 …...

18 Shell编程规范与变量
目录 18.1 Shell脚本概述 18.1.1 Shell的作用 18.1.2 编写第一个Shell脚本 18.1.3 重定向与管道操作 18.2 Shell变量的作用、类型 18.2.1 自定义变量 18.2.2 特殊的Shell变量 18.1 Shell脚本概述 可以批量处理、自动化地完成一系列维护任务,大大减轻管理员的负担。…...

Linux基础命令大全(详解版)
Linux基础命令(详解版) 文章目录 Linux基础命令(详解版)1.Linux的目录结构**2.Linux路径的描述方式**3.Linux命令基础格式4.ls命令 隐藏文件、文件夹5.pwd命令6.cd命令 特殊路径符7.mkdir命令 文件操作命令8.touch命令9.cat命令10…...
python列表常见去重方法
列表去重在python实际运用中,十分常见,也是最基础的重点知识。 1. 使用for循环实现列表去重 此方法去重后,原顺序保持不变。 # for循环实现列表去重 list1 [a, 4, 6, 4, b, hello, hello, world, 9, 9, 4, a] list2 [] for l1 in list1:…...

usb摄像头应用编程
作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…...

康谋分享 | 自动驾驶联合仿真——功能模型接口FMI(一)
功能模型接口FMI(Functional Mock-up Interface)是一个开放且与工具解耦的标准。FMI包含了一个C-API(接口),一个用于描述接口的XML文件以及可交换的功能模型单元FMU(Functional Mock-up Unit)&a…...
OPenCV中绘制多条多边形曲线函数polylines的使用
操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 绘制多条多边形曲线 原型1 void cv::polylines ( InputOutputArray img, InputArrayOfArrays pts, bool isClosed, const Scalar & color…...

气膜球幕影院:娱乐体验的新高度—轻空间
气膜球幕影院以其独特的全景沉浸体验和丰富的娱乐内容,成为了现代娱乐产业的重要组成部分。轻空间带您来探索一下气膜球幕影院带来的独特娱乐体验。 全景沉浸式体验 气膜球幕影院的360度全景沉浸式体验,彻底改变了传统观影方式。观众被包围在一个球形屏幕…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
boost::filesystem::path文件路径使用详解和示例
boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类,封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解,包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...