应用程序InetlliJ IDEA不能打开
一大早回公司想打开 IDEA,准备魔改一下 Spark,突然发现前两天更新的 IDEA 打不开了(那天更新完后没有尝试打开),WTF。打不开的表现是双击图标毫无反应,我第一反应是,我系统有多个 IDEA,而且还有 N 个版本还有各种社区版交错,当然还有之前一直用的破解版,会不会是版本的问题呢?既然公司现在可以提供企业版,那就没理由继续盗版了,而且那是好几年前了。虽然电脑换过很多次了,但是每次都是 Time Machine,所以配置什么的是一直同步着的,而且 IDEA 是 Java 写的,找 BUG 找问题的思路跟开发 Java 应用的时候也应该是类似的。
于是按照以上的思路去排查。首先查看一下我有几个 IDEA,默认的地址是 ~/Library/Application Support/JetBrains/
,下图其实我已经删掉了 2018 版本的 IDEA 了,所以看起来只剩下今天装的两个,但是这不妨碍读者自己在这个默认安装目录下找自己打 IDEA。
看到多个版本的 IDEA,还有之前用的 2018 年的破解版,已经大概有点眉目了,应该是当年配置破解版的 IDEA 落下的问题。又知道作为 Java 应用,IDEA 应该是可以用命令行去打开的,然后尝试通过命令行的方式打开 IDEA,如下图。果然发现 ERROR 信息。也就是这个 jar 包缺失导致更新后的企业版无法启动,此时此景,我想到了 IDEA 的配置文件,也就是 idea.vmoptions
,关于这个配置文件的作用个,可以参考 Reference 的第二篇官方博客。
找到问题了,然后就是把配置文件那一行去掉。重新打开又遇到第二个问题,提示我有些插件找不到了。
然后我到 IDEA 默认的插件目录 ~/Library/Application Support/JetBrains/IntelliJIdea2020.1/plugins
查看,发现其实 IDEA 安装的时候其实已经读取了 JetBrains 文件夹里我原有 IDEA 的 Settings 配置了,这个问题挺奇怪的,虽然有说 2020 版本相比 2018 版本,已经将 Plugin 的路径修改了,所以可能需要做一些额外的配置,这一点我没有尝试,我是直接把 Plugins 目录下的文件删除掉,因为我其他 IDE 其实有 Plugins 的 Settings 文件,所以 IDEA 打开之后重新导入就可以了。
另外还需要注意的是 IDEA 有很多隐藏的配置文件目录,如果你的 IDEA 有问题或者是插件有问题,可以将这些隐藏文件备份好之后删除再重启你的 IDEA。
按照上面的步骤下来,就可以冲洗见到这个陌生又熟悉的界面了,cheers!
Reference
- https://intellij-support.jetbrains.com/hc/en-us/articles/360007568559
- https://intellij-support.jetbrains.com/hc/en-us/articles/206544869-Configuring-JVM-options-and-platform-properties
- Android基础总结(2)——活动Activity
- Java实现的IP处理工具类——可用于项目
- 使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题
- 一次误报引发的DNS检测方案的思考:DNS隧道检测平民解决方案
- Andriod基础——Adapter类
- ORM查询语言(OQL)简介--高级篇:脱胎换骨
- 用Java实现处理日期的工具类——常用日期处理方法
- ORM查询语言(OQL)简介--实例篇
- 漏洞预警 | 海洋CMS(SEACMS)0day漏洞预警
- 【机器学习】分类算法评价
- Java中图片处理工具类——能满足各种需求
- onclicklistener到底怎么用?
- 如何入侵联网智能灯泡——LIFX智能灯泡
- Java实现的一个编号生成器工具类——5种方法
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Python字符串
- 初识 HBase
- Number对象
- Windows 技术篇-设置计划任务,每天自动关机
- Mycat 快速入门
- Python 技术篇-连接qq邮箱服务器,调用qq邮箱发送邮件实战演示,qq邮箱授权码开通方法
- 浅谈数据库集群方案
- SkyWalking - 实现微服务监控告警
- Actuator + Prometheus + Grafana搭建微服务监控平台
- Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法
- python运算符
- Windows 技术篇-禁用windows更新服务,解决windows无法关闭更新问题,解决windows自己启用更新问题。
- 搭建 SkyWalking 服务(For ElasticSearch 7)
- 基于 SkyWalking 实现服务链路追踪
- Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示