intellij 从2020升级到2023 踩坑实录

news2024/11/20 7:25:56

1.下载新版本intellij

工作机器上的intellij版本为2020社区版,版本比较老旧,需要进行升级。IDE这种提高生产力的工具,还是蛮重要的,也是值得稍微多花点时间研究一下的。升级之前就预计到了不会是那么简单,后面事实也证明确实很麻烦,特意记录升级过程,为后来人指明方向。

首先下载新版本,这个没什么好说的,直接去jetbrain官网,根据自己的操作系统下载对应的intellij版本,我的机器是ubuntu,下载对应的linux .tar.gz然后解压就好。

2.启动intellij报错,查找对应日志文件

解压以后,会得到一个ideaIC-2023.1文件夹,文件夹里面是idea-IC-231.8109.175,进去可以看到结构

tree -L 1 idea-IC-231.8109.175

在这里插入图片描述

cd到bin里面,里面有idea.sh文件。最理想的情况,就是执行idea.sh文件,然后IDE正常启动。当然理想情况是不可能发生的,一般都会各种意外。

执行idea.sh的时候就报错,无法正常启动,需要去查log。2023版各文件的位置为

配置(idea.config.path)~/.config/JetBrains/IdeaIC2023.1
插件(idea.plugins.path)~/.local/share/JetBrains/IdeaIC2023.1
系统(idea.system.path)~/.cache/JetBrains/IdeaIC2023.1
日志(idea.log.path)~/.cache/JetBrains/IdeaIC2023.1/log

IDE启动的日志就在~/.cache/JetBrains/IdeaIC2023.1/log中

tree -L 1 log

在这里插入图片描述
启动日志就在idea.log里面。

3.排查log

在idea.log中,开始排查错误信息。

2023-04-20 14:16:24,412 [     78] SEVERE - #c.i.i.p.PluginManager - `include` is supported only on a root level ([row,col,system-id]: [718,5,"/home/xxx/.local/share/JetBrains/IdeaIC2023.1/odps-studio-intellij/lib/odps-studio-intellij-3.6.2.jar"])
java.lang.Throwable: `include` is supported only on a root level ([row,col,system-id]: [718,5,"/home/xxx/.local/share/JetBrains/IdeaIC2023.1/odps-studio-intellij/lib/odps-studio-intellij-3.6.2.jar"])
        at com.intellij.openapi.diagnostic.Logger.error(Logger.java:202)
        at com.intellij.ide.plugins.XmlReader.checkXInclude(XmlReader.kt:499)
        at com.intellij.ide.plugins.XmlReader.access$checkXInclude(XmlReader.kt:1)
        at com.intellij.ide.plugins.XmlReader.readExtensions(XmlReader.kt:408)
        at com.intellij.ide.plugins.XmlReader.readRootElementChild(XmlReader.kt:264)
        ...

最开始看到有抛上述异常,开始去找相关错误信息。找了半天,没发现有啥好办法。后来证明,这个东西暂时不影响正常使用…

继续查看日志,发现如下一段错误日志。

2023-04-20 14:16:26,014 [   1680]   INFO - STDERR - Start Failed
2023-04-20 14:16:26,014 [   1680]   INFO - STDERR - Internal error. Please refer to https://jb.gg/ide/critical-startup-errors
2023-04-20 14:16:26,015 [   1681]   INFO - STDERR -
2023-04-20 14:16:26,015 [   1681]   INFO - STDERR - com.intellij.diagnostic.PluginException: Fatal error initializing 'com.aliyun.odps.studio.intellij.StudioMain' [Plugin: OdpsStudio]
2023-04-20 14:16:26,015 [   1681]   INFO - STDERR -     at com.intellij.serviceContainer.ComponentManagerImpl.handleInitComponentError$intellij_platform_serviceContainer(ComponentManagerImpl.kt:612)
2023-04-20 14:16:26,015 [   1681]   INFO - STDERR -     at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:59)
2023-04-20 14:16:26,015 [   1681]   INFO - STDERR -     at com.intellij.serviceContainer.BaseComponentAdapter.doCreateInstance(BaseComponentAdapter.kt:154)
2023-04-20 14:16:26,016 [   1682]   INFO - STDERR -     at com.intellij.serviceContainer.BaseComponentAdapter.createInstance$lambda$1(BaseComponentAdapter.kt:133)
2023-04-20 14:16:26,016 [   1682]   INFO - STDERR -     at com.intellij.openapi.progress.Cancellation.computeInNonCancelableSection(Cancellation.java:99)
2023-04-20 14:16:26,016 [   1682]   INFO - STDERR -     at com.intellij.serviceContainer.BaseComponentAdapter.createInstance(BaseComponentAdapter.kt:132)
2023-04-20 14:16:26,016 [   1682]   INFO - STDERR -     at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:92)
2023-04-20 14:16:26,016 [   1682]   INFO - STDERR -     at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:77)
2023-04-20 14:16:26,017 [   1683]   INFO - STDERR -     at com.intellij.serviceContainer.ComponentManagerImpl$createInitOldComponentsTask$1.invoke(ComponentManagerImpl.kt:428)
2023-04-20 14:16:26,017 [   1683]   INFO - STDERR -     at com.intellij.serviceContainer.ComponentManagerImpl$createInitOldComponentsTask$1.invoke(ComponentManagerImpl.kt:426)
2023-04-20 14:16:26,017 [   1683]   INFO - STDERR -     at com.intellij.idea.ApplicationLoader$initApplicationImpl$appInitializedListeners$1$1$2$1.invokeSuspend(ApplicationLoader.kt:161)
2023-04-20 14:16:26,017 [   1683]   INFO - STDERR -     at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
2023-04-20 14:16:26,017 [   1683]   INFO - STDERR -     at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
2023-04-20 14:16:26,017 [   1683]   INFO - STDERR -     at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
2023-04-20 14:16:26,018 [   1684]   INFO - STDERR -     at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:788)
2023-04-20 14:16:26,018 [   1684]   INFO - STDERR -     at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:739)
2023-04-20 14:16:26,018 [   1684]   INFO - STDERR -     at java.desktop/java.awt.EventQueue$3.run(EventQueue.java:731)
2023-04-20 14:16:26,018 [   1684]   INFO - STDERR -     at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
2023-04-20 14:16:26,018 [   1684]   INFO - STDERR -     at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
2023-04-20 14:16:26,018 [   1684]   INFO - STDERR -     at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:758)
2023-04-20 14:16:26,019 [   1685]   INFO - STDERR -     at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.kt:302)
2023-04-20 14:16:26,019 [   1685]   INFO - STDERR -     at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:207)
2023-04-20 14:16:26,019 [   1685]   INFO - STDERR -     at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
2023-04-20 14:16:26,019 [   1685]   INFO - STDERR -     at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
2023-04-20 14:16:26,019 [   1685]   INFO - STDERR -     at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
2023-04-20 14:16:26,019 [   1685]   INFO - STDERR -     at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR -     at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:92)
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR - Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.log4j.Category.getAllAppenders()" because the return value of "org.apache.log4j.Logger.getParent()" is null
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR -     at com.aliyun.odps.studio.intellij.ide.IntellijLogger.getInstance(IntellijLogger.java:48)
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR -     at com.aliyun.odps.studio.intellij.ide.IntellijLogger.info(IntellijLogger.java:21)
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR -     at com.aliyun.odps.studio.component.util.DerbyDBUtil.initOptionPath(DerbyDBUtil.java:23)
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR -     at com.aliyun.odps.studio.intellij.StudioMain.initComponent(StudioMain.java:94)
2023-04-20 14:16:26,020 [   1686]   INFO - STDERR -     at com.intellij.serviceContainer.MyComponentAdapter.doCreateInstance(MyComponentAdapter.kt:45)
2023-04-20 14:16:26,021 [   1687]   INFO - STDERR -     ... 25 more
2023-04-20 14:16:26,021 [   1687]   INFO - STDERR -
2023-04-20 14:16:26,021 [   1687]   INFO - STDERR - -----
2023-04-20 14:16:26,021 [   1687]   INFO - STDERR - Your JRE: 17.0.6+10-b829.5 amd64 (JetBrains s.r.o.)
2023-04-20 14:16:26,021 [   1687]   INFO - STDERR - /home/xxx/ideaIC-2023.1/idea-IC-231.8109.175/jbr

Internal error. Please refer to https://jb.gg/ide/critical-startup-errors
这一句很关键,根据这一句搜到这个老哥的总结。

https://intellij-support.jetbrains.com/hc/en-us/articles/360007568559?page=8

里面有这么一段

There are multiple possible causes for this issue: broken or incompatible plug-in, corrupted IDE installation files, failed patch update, broken caches or damaged configuration.

It may be hard to guess the root case from the exception stacktrace.

再结合下面的错误信息,基本就是broken or incompatible plug-in的原因了。

看idea-IC-231.8109.175文件夹里有一个plugins, 最开始以为是在这个文件夹下面的。但是查了好久,也木有发现OdpsStudio相关的插件呀,相当郁闷,也不知道为什么intellij启动跟aliyun有什么关系。

后来想起来,还有一个插件相关的目录
~/.local/share/JetBrains/IdeaIC2023.1

cd到这个目录,果然发现有个跟OdpsStudio相关的目录,不管三七二十一,直接删掉。

再执行idea.sh文件,世界和平,正常启动。

4.创建快捷方式

每次通过执行idea.sh的方式启动肯定不方便,需要创建快捷方式快速启动。

网上的教程都是告诉你创建idea.desktop(应该是老版本)文件去实现。但是新版本的intellij提供了更好的方法:

Tools菜单下面有个create desktop entry选项。点击这个选项,可以在/usr/share/applications中直接生成jetbrains-idea-ce.desktop文件。

但是重点来了,发现每次点快捷方式,启动的还是原来2020老版本的IDE!!!

试了好几次,重启大法也用上了,还是一样。

突然灵光一现想起一个问题,是不是原来就有这个文件,虽然在新版本IDE 里执行了create desktop entry选项,文件没有更新啊

于是把原有的文件删掉,重新再点击create desktop entry选项,然后发现应用程序里的快捷方式图标,更新了。这个时候再启动,也是2023新版的IDE,完美解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444461.html

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

相关文章

大型体检管理系统源码,Vs2012,C/S架构

体检管理系统源码,PEIS源码 一套专业的体检管理系统源码,核心功能有体检档案的录入、体检报告的输出、体检档案的统计查询和对比分析。该系统的使用,可以大大提高体检档案管理人员的工作效率,使体检档案的管理更加准确、全面、完…

以人为本的重点是有效网络安全计划的关键

安全和风险管理 (SRM) 领导者在根据九大行业趋势创建和实施网络安全计划时,必须重新考虑他们在技术和以人为本的元素之间的投资平衡。 以人为本的网络安全方法对于减少安全故障至关重要。 在控制设计和实施以及通过业务沟通和网络安全人才管理中关注人&#xff…

Python中的异常——概述和基本语法

Python中的异常——概述和基本语法 摘要:Python中的异常是指在程序运行时发生的错误情况,包括但不限于除数为0、访问未定义变量、数据类型错误等。异常处理机制是Python提供的一种解决这些错误的方法,我们可以使用try/except语句来捕获异常并…

基于linux:MySql-5.7二进制安装部署

基于linux:MySql-5.7二进制安装 1)检查当前系统是否安装过Mysql [ ~]$ rpm -qa|grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 //如果存在通过如下命令卸载 [ ~]$ sudo rpm -e --nodeps mariadb-libs //用此命令卸载mariadb2)解压MySQ…

限流算法浅析

前言 在前文接口请求安全措施中,简单提到过接口限流,那里是通过Guava工具类的RateLimiter实现的,它实际上是令牌桶限流的具体实现,那么下面分别介绍几种限流算法,做一个更详细的了解。 固定窗口限流 1、核心思想 在…

基于 Flink CDC 的现代数据栈实践

摘要:本文整理自阿里云技术专家,Apache Flink PMC Member & Committer, Flink CDC Maintainer 徐榜江和阿里云高级研发工程师,Apache Flink Contributor & Flink CDC Maintainer 阮航,在 Flink Forward Asia 2022 数据集成…

初识C语言————4

文章目录 常见关键字 1、 关键字 typedef 2、关键字static define 定义常量和宏 指针 结构体 前言 这是博主初识C语言系列的最后一篇,之后博主会更新更详细的关于C语言学习的知识。希望各位老铁多多支持。 一、常见关键字 1、 关键字 typedef typedef 顾名思义是…

海康威视发布2022年ESG报告:科技为善, 助力可持续的美好未来

近日,海康威视正式发布《2022环境、社会及管治报告》(以下简称“海康威视ESG报告”),连续5年呈现在环境、社会发展、企业治理等领域的思考和创新成果。此外,报告中首次披露了碳中和业务蓝图,积极布局绿色生产、绿色运营…

HTTP特性

1 HTTP/1.1 的优点有哪些? 2 HTTP/1.1 的缺点有哪些? 3 HTTP/1.1 的性能如何? HTTP 协议是基于 TCP/IP,并且使用了「请求 - 应答」的通信模式,所以性能的关键就在这两点里。 3.1 长连接 早期 HTTP/1.0 性能上的一…

分布式Id生成之雪花算法(SnowFlake)

目录 前言 回顾二进制 二进制概念 运算法则 位(Bit) 字节(Byte) 字符 字符集 二进制原码、反码、补码 有符号数和无符号数 疑问:为什么不是-127 ~ 127 ? 为什么需要分布式全局唯一ID…

sql中 join 的简单用法总结(带例子)

join 常见的用法有: 目录 left join(left outer join)right join(right outer join)join(inner join)full join(full outer join 、outer join)cross join 说明&#xf…

docker自定义镜像

文章目录 一、自定义镜像1.1 镜像结构1.2 Dockerfile1.3 dockerCompose1.3.1 dockerCompose的作用1.3.2 dockerCompose的常用命令 1.4 镜像仓库 一、自定义镜像 1.1 镜像结构 自定义镜像通常包含三个基本部分:基础镜像、应用程序代码和配置文件。 基础镜像&#…

asp.net+sqlserver+C#网上洗衣店的设计与实现

选题的目的、理论与实践意义: 随着洗衣店服务的日渐完善和复杂,以前单纯的文本记录人工管理方式不仅效率低下,且易出错,直接导致管理费用的增加,服务质量的下降。由于这种人工管理方式不能完全适应需求的发展&#xff…

打包后dist包中app.**.js文件暴露大量接口信息,webpack-obfuscator对打包后的js代码混淆加密

问题描述 打包后dist包中app.**.js文件暴露大量接口信息,而webpack-obfuscator可以对打包后的js代码混淆加密 版本信息 webpack: 4.x.x node: 14.18.0 webpack4环境下使用webpack-obfuscator不能使用最新版本 我的下载版本是: npm install --save-de…

回溯算法模板(python)

#回溯模板,伪代码 def backtracking(参数):if (终止条件):存放结果return #如果要将数层中间的结果也插入,就不用写return,比如子集问题for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)):处…

通过Python的PIL库进行图像的过滤

文章目录 前言一、素材准备二、演示1.引入库2.定义图片路径3.打开原图4.过滤方法4.1图像的模糊效果代码效果图 4.2图像的轮廓效果代码效果图 4.3图像的细节效果代码效果图 4.4图像的边界效果代码效果图 4.5图像的边界加强效果代码效果图 4.6图像的阈值边界加强效果代码效果图 4…

自定义bean对象实现hadoop序列化

文章目录 一、源代码1.UserSaleMapper类2. UserSaleReducer类3. UserSaleDriver类4.pom.xml 二、执行结果 指导参考图: 一、源代码 1.UserSaleMapper类 package org.example.writable;import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Tex…

大厂对ChatGPT的开发利用和评估案例收录

ChatGPT已经进入各行各业,但是实际在工作中的有哪些应用呢?这里分享互联网一线大厂分享的一些实际使用案例,所有文章收录到 大厂对ChatGPT的开发利用和评估案例收录http://​www.webhub123.com/#/home/detail?projectHashid67792343&own…

Visual Studio 2019 C# 上位机入门(2):写一个简单的串口助手

前言 本文记录一下用Visual Studio 2019 C# 写一个简单的串口助手的过程,由于没有先从小处学习,而是直接找相关资料就开始做,免不了很多奇怪的问题花了一些时间,基于此情况,我将尽可能整理出更多细节,尤其…

Linux基础内容(20)—— 共享内存

Linux基础内容(19)—— 进程间通信(介绍与管道内容)_哈里沃克的博客-CSDN博客 目录 1.共享内存的原理 2.共享内存的概念和特点 创建共享内存 共享内存的形式 共享内存(ipc资源)的调用和特征 用户接口删除共享内存 共享内存关联 去关联 特点 …