Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)
概述
IDEA很强大,也非常吃内存,有时会因为各种原因如蓝屏(Windows开发者),断电(非常少见),内存不足(表现为卡死,通过任务管理器强杀进程)等导致IDEA不正常退出。
现象
某次IDEA非正常原因杀掉进程退出(事后的反思,上午还好好的,为啥下午就出问题),重启IDEA后,启动应用失败,项目包括3个war包应用,另外两个应用也是一模一样的问题,报错如下:
Disconnected from the target VM, address: '127.0.0.1:65198', transport: 'socket'
浪费近2个小时。。想到一天只有8个工作小时,算是狠严重的工作效率事故。网络上类似的文章也非常多,包括中文和英文,但大多数都是抄来抄去,解决不了我的问题。。
因此,虽然之前写过IDEA相关blog(如果有兴趣,可以去看看专栏IDE),最后还是记录下此文。。
解决过程
- 检查应用的最近提交记录,或未提交的本地修改(将本地已修改的文件Git Stash暂存,回到发生事故之前);
- 电脑重启两次无效,可以杀掉进程,清理电脑缓存等;
- IDEA重启,可以说是解决各种软件问题的百试不爽大法;
- 清除缓存并重新检索,indexing是非常耗时的操作;
maven clean
,mvn spring-boot:run
;通过IDEA的Debug启动失败,试试Maven启动呢;- 检查logback.xml文件配置,网络资料有说因为导致应用启动失败的原因没有打印在控制台,所以要首先定位启动失败的原因;
- 清除断点,有资料说和断点有关,网络上各种抄来抄去的解决方法都不可行的情况下,做的最后尝试。。
全部都不行。。各种尝试,都告以失败。。沮丧之至。。
最后的解决方案:
删除项目根目录下面的.idea
文件夹,并删除此根目录及其下子文件夹下面的全部*.iml
文件(有子目录是因为项目是多module应用),删除,重新导入,此时项目无法被识别为Maven项目,打开右侧Maven面板,reimport。
解决问题!!!
类似事故
后来又出现类似的问题
多模块应用,一个模块应用启动成功,但是另外一个模块启动失败。删除本地文件夹target
和iml
文件,截图做示意作用:
重新导入Maven项目:
解决方案
- 先尝试删除
iml
文件,即把maven project从IDEA管理的项目中移除,后面需要重新import maven project。注意:iml
文件是module级别; - 不行的话,再删除
target
文件夹; - 还是不行的话,最后才考虑删除
.idea
隐藏文件夹。注意:idea
文件夹是git repository级别;
注意事项
因为删除.idea
文件夹,意味着:
- 删除项目的配置信息,如debug configuration;
- Git Stash信息,未提交的工作到一般的本地修改;
- 内嵌数据库Database执行器console执行历史SQL语句记录。
结论:Database执行器console执行历史SQL语句记录在文件夹:C:\Users\<awesome_me>\AppData\Roaming\JetBrains\IntelliJIdea2020.3\consoles\db
下面。
附:找回Database执行器console执行历史SQL语句记录方法,
IDEA会自动备份console的修改记录,右键:
找到本地的修改记录:
结论:
IDEA确实很强大,但是偶尔抽风,浪费时间很头疼。。
为了减少这样的浪费时间的事故,正常操作IDEA,比如:不要杀进程;退出IDEA时,等待debug模式停掉;周五下班时,退出IDEA等等。