记一次intelliJ IDEA无论如何无法启动的解决过程。

背景是我的笔记本比较辣鸡,内存只有4G,在一次写代码的过程中,我一下开了三个窗口,然后intelliJ IDEA提醒我内存用尽了,需要加大内存分配量。(大概类似于下图)

Idea无法启动javac进程 idea 无法启动_Idea无法启动javac进程

在改了分配量之后,我就中断IDEA漫长的运行过程(我电脑特别卡),直接关掉了,带来的直接后果就是我的IDEA再也无法启动了……

搜索解决方案,根据网上的方法,修改安装路径下的.exe.vmoptions下的内存分配值无果,修改idea.properties无果,网上各种找解决方案无法解决之后,只能一点一点分析,我尝试在IDEA的安装路径下解决问题,首先尝试使用.bat文件重新启动。但是控制台总是一闪而过,看不清输出是什么。

因此,使用笔记本打开.bat文件,在最后一行添加pause指令,保证控制台不会自动关闭。观察控制台输出,控制台输出为“Error occured during initialization of VM, Could not reserve enough space for object heap 2560000KB”。

由此输出,可以得出是java在调用IDEA的启动程序时发生了内存不足的错误。顺着.bat文件往前看,可以看到关于配置的代码如下:

Idea无法启动javac进程 idea 无法启动_windows_02


这里逻辑比较清楚,先去查找安装路径下的.vmoptions文件,如果没有,就去查找%APPDATA%下的JetBrains\IntelliJIdea2020.1\idea%BITS%.exe.vmoptions文件,以此类推……打开控制台,输入"echo %APPDATA%",显示如下:

Idea无法启动javac进程 idea 无法启动_Idea无法启动javac进程_03


拼接字符串,打开路径 “C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.1”(这里需要注意,在文件夹工具-文件夹选项下打开显示隐藏文件的选项,如果找不到Roaming文件夹,可以百度怎么打开隐藏文件),在路径下根据操作系统的位数,打开idea.exe.vmoptions文件或者idea64.exe.vmoptions文件,修改其中的内存分数配置如下:

-server
-Xms128m
-Xmx384m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf=true
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
-XX:MaxMetaspaceSize=1024m

重新打开idea.exe文件,恢复正常!!!

总结:网上让修改安装目录下的idea.exe.vmoptions方法不一定生效,除非在 C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2020.1 这个路径下没有内容才会生效!注意查看.bat文件的逻辑。