侧边栏壁纸
博主头像
太上问情 博主等级

人非太上,岂能忘情。

  • 累计撰写 17 篇文章
  • 累计创建 9 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Mac 修改 IDEA 内存后无法启动

太上问情
2025-04-13 / 0 评论 / 0 点赞 / 9 阅读 / 0 字 / 正在检测是否收录...

前言

这两天在学习 JVM 的相关知识,学习了 JVM 内存模型。然后是用 IDEA 编写的测试样例,偶然间突然有个 Big 胆的想法:IDEA 主要是用 Java 开发的也是用的 JVM,那么它应该也有JVM 内存溢出的情况。大家看IDEA 下面这个选项是不是有点诱人!

image-20250413下午101352519

于是我在想,IDEA 堆内存溢出会怎样?应该会因为内存溢出无法启动吧,然后我就大胆试验了下!

实操

修改IDEA 自定义属性

为了让 IDEA 内存溢出,我们需要将编写的自定义JVM 属性修改为比 IDEA 安装时定义的 JVM 内存要小一点,我这里设置了最大、最小内存都为 20M,以保证 IDEA 能达到内存溢出的效果。

# IDEA 默认设置的内存大小
# /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptins(Mac 中的 IDEA 安装路径)
-Xms128m
-Xmx2048m

# 自定义内存大小
-Xms20m
-Xmx20m

保存重启!果然,启动之后直接闪退了。

image-20250413下午102735473

查看启动日志

Mac 弹窗提示的这个报错信息没法看出是不是内存溢出,只能看到 G1、G2 等等各种问题。所以我们通过命令行的方式启动看一下具体的日志:

image-20250413下午105539876

通过上面的日志能够看到,确实是内存溢出了,大部分是插件的内存溢出日志,咱的目的也算是达成了。

恢复 IDEA

虽然达成所愿让 IDEA 内存溢出了,但是 IDEA 却没法启动了。我原本以为作为宇宙第一 IDE 的 IDEA,在我反复打开无法启动之后,会有一个弹窗提示我还原所有设置达到初始安装的状态。结果……IDEA 你还得练啊。

那么接下来只能我自己想办法还原了,主要有以下两个思路:

  • 找到 IDEA JVM 的配置文件,还原 JVM 堆内存大小
  • 卸载重装 IDEA,不过印象中 IDEA 卸载的话会有残留,之前 Windows 卸载重装都会继承之前的配置,不知道会不会成功

本着多一事不如少一事的原则,先尝试感觉会失败的方式,免得还得重新配置一遍。

卸载重装 IDEA【失败】

从访达进入【应用程序】路径,选择 IDEA-移到废纸篓,然后重装。

image-20250413下午111252018

卸载完成之后,我尝试安装了同版本、低版本、高版本的 IDEA,均无法启动。确实会有残留让新安装的 IDEA 也继承了原先的问题,导致无法启动(在这里就得批评一下了,宇宙第一 IDE还是不够智能,不会取其精华去其糟粕,好的坏的都继承过来了)。

还原 IDEA JVM 配置【成功】

因为上面卸载重装无法解决 IDEA 无法启动的问题,所以我们只能尝试还原 JVM 配置了。查看了下安装路径下的 idea.vmoptions文件,还是和之前一样,所以我们之前配置的自定义属性不是写到这里的。

# /Applications/IntelliJ IDEA.app/Contents/bin/idea.vmoptions
-Xms128m
-Xmx2048m
-XX:ReservedCodeCacheSize=512m
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:CICompilerCount=2
-XX:+IgnoreUnrecognizedVMOptions
-ea
-Dsun.io.useCanonCaches=false
-Dsun.java2d.metal=true
-Djbr.catch.SIGABRT=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.attach.allowAttachSelf=true
-Djdk.module.illegalAccess.silent=true
-Djdk.nio.maxCachedBufferSize=2097152
-Djava.util.zip.use.nio.for.zip.file.access=true
-Dkotlinx.coroutines.debug=off
-XX:+UnlockDiagnosticVMOptions
-XX:TieredOldPercentage=100000
-Dapple.awt.application.appearance=system

命令行启动查看日志:

image-20250413下午112316181

通过日志发现,有一个插件的路径里面包含【JetBrains/IntelliJIdea2024.3】,这不就看到了熟悉的路径了吗,windows 下卸载之后残留的文件夹也是这样的名称。

前往这个路径发现,这下面有个熟悉的文件【idea.vmoptions】,打开一看正是我们之前自定义的属性。

image-20250413下午112653491

image-20250413下午112837422

清空这个文件内容,然后保存重启,成功解决!

后记

在编写这个文档的时候,重新复现了一遍上述步骤,出现了新的问题:

image-20250413下午113413254

有效果,翻译提示看了下:

IDE进程(PID: 15147,监听在'/Users/huangli/Library/Caches/JetBrains/IntelliJIdea2024.3/.port')没有响应(连接超时)。
如果IDE正在启动或关闭,请稍后再试。
如果进程似乎卡住了,请尝试杀死它并删除端口文件'/Users/huangli/Library/Caches/JetBrains/IntelliJIdea2024.3/.port'。
如果问题仍然存在,请收集日志并联系支持人员。

然后进入【/Users/huangli/Library/Caches/JetBrains/IntelliJIdea2024.3】路径之后,并没有找到.port文件(已经查看隐藏文件了)。然后重新命令行启动,提示需要删除一个.lock文件,按照命令行提示删除后成功解决。

0

评论区