IDEA更改启动界面背景图片


背景

IDEA的启动界面很不符合我的审美,太难看了,遂决定找方式进行更换


一、2021版本之前替换方式

很幸运,网上和我一样需求的大佬也不少,提供了详细的替换步骤,总结来说就是找到idea目录下 的resources jar包,(例如这是我的路径 D:\program_file\IntelliJ IDEA 2020.1\lib\resources.jar),替换这两个包中的idea_logo.png以及idea_logo@2x.png图片文件,替换时注意图片分辨率即可(分辨率大小会影响打开idea时的启动界面大小)。至此,一切替换都很顺利,本人也成功在IDEA2020.1版上成功替换。

二、2021版本之后的替换方式

1.寻找替换失败原因

  • 刚好我还有另外一台电脑也想着替换一下,安装的IDEA版本为2021.1版,按照之前的替换方式替换完成后,一打开还是原来的启动图片,懵逼;于是重启笔记本,再打开,还是一样;继续懵逼。在折腾了几个小时之后,怎么替换都不行,发邮件问客服,未回复我。

  • 还是得靠自己,想着IDEA启动时肯定需要加载resources.jar这个包,那如果没有会发生什么呢,于是在lib目录下删除resources.jar这个包,打开IDEA,果然有报错。报错内容如下图:
    IDEA启动报错
    按照该提示信息意思就是无法找到ApplicationInfo.xml这个配置文件,在resources.jar包中的idea目录下能够找到该配置文件,打开该配置文件,看到配置文件中配置了logo相关的配置
    在这里插入图片描述
    可以看到该配置指向的就是resouces.jar包中的idea_logo.png文件,明明替换了为什么没有生效呢?难道这个位置执行的不是当前jar包下的idea_logo.png文件?想着更改一下文件名换成idea_logo@2x.png那个图片文件,更改保存重新打开IDEA一气呵成,继续报错,提示说找不到idea_logo@2x.png文件。

    • 此时报了一个堆栈信息出来,如图。
      在这里插入图片描述

可以看到,加载图片的一个类为Splash.java。方法报错为loadImage方法。于是想找这个类的class文件反编译一下看文件路径是具体指向哪个位置;jar文件中寻找一个类太难,于是把lib目录下的jar全部拷贝出来,全部解压,使用Everything搜索工具搜索该类名字,成功找到(位置在platform-impl.jar包下的com/intellij/ui下)。打开文件,找到报错方法,可以看到此处中写了个loadImageFromCache相关的方法,如图:
在这里插入图片描述

此处根据方法名推断,应该会从缓存中取启动的图片,刚好之前在使用Everything搜索文件类名的时候,everything中待选项出现了一个和这个类名相关的信息,所在的目录也正好是windows常用的软件缓存目录;如图:
在这里插入图片描述

位置在:C:\Users\用户名\AppData\Local\JetBrains\IntelliJIdea2021.1\splashSlides
于是去找寻这个目录,找到之后,打开,果然是每次启动都会加载的那张图片(欲哭无泪),删除该目录,再次打开IDEA,替换成功,nice。替换成功之后,我打开2020.1的那台电脑,在同样的目录下查看Splash.class文件相关代码,发现并没有从缓存中取图片的相关逻辑。判断应该是2021版本后添加的该逻辑,用于增加启动速度。

2. 2021版替换方式

找到对应的缓存启动图片的目录,比如我的是在 C:\Users用户名\AppData\Local\JetBrains\IntelliJIdea2021.1\splashSlides,删除该目录;删除之后,按照第一节的替换方式即可。重启即可成功,下次再需要替换时,同样也需要删除图片缓存目录,如果没有缓存目录,可参考2020版本的替换方式。

总结

2020版以及2021版的替换方式大同小异,2021版只是多了一个删除目录的步骤,只要按照相应操作方式进行都能把启动图片换成自己心仪的(注意大小,过大可能会加载不出来,替换的图片必须是png格式,直接改后缀名方式不可行,需要通过工具转换格式)。其它版本的可参考同样方式执行,如果替换失败,可查看几个关键文件的信息来定位问题。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值