天天看点

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​​),最后还是记录下此文。。

解决过程

  1. 检查应用的最近提交记录,或未提交的本地修改(将本地已修改的文件Git Stash暂存,回到发生事故之前);
  2. 电脑重启两次无效,可以杀掉进程,清理电脑缓存等;
  3. IDEA重启,可以说是解决各种软件问题的百试不爽大法;
  4. 清除缓存并重新检索,indexing是非常耗时的操作;
  5. ​maven clean​

    ​​,​

    ​mvn spring-boot:run​

    ​;通过IDEA的Debug启动失败,试试Maven启动呢;
  6. 检查logback.xml文件配置,网络资料有说因为导致应用启动失败的原因没有打印在控制台,所以要首先定位启动失败的原因;
  7. 清除断点,有资料说和断点有关,网络上各种抄来抄去的解决方法都不可行的情况下,做的最后尝试。。

全部都不行。。各种尝试,都告以失败。。沮丧之至。。

最后的解决方案:

删除项目根目录下面的​​

​.idea​

​​文件夹,并删除此根目录及其下子文件夹下面的全部​

​*.iml​

​文件(有子目录是因为项目是多module应用),删除,重新导入,此时项目无法被识别为Maven项目,打开右侧Maven面板,reimport。

解决问题!!!

类似事故

后来又出现类似的问题

Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)

多模块应用,一个模块应用启动成功,但是另外一个模块启动失败。删除本地文件夹​

​target​

​​和​

​iml​

​文件,截图做示意作用:

Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)

重新导入Maven项目:

Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)

解决方案

  1. 先尝试删除​

    ​iml​

    ​​文件,即把maven project从IDEA管理的项目中移除,后面需要重新import maven project。注意:​

    ​iml​

    ​文件是module级别;
  2. 不行的话,再删除​

    ​target​

    ​文件夹;
  3. 还是不行的话,最后才考虑删除​

    ​.idea​

    ​​隐藏文件夹。注意:​

    ​idea​

    ​文件夹是git repository级别;

注意事项

因为删除​

​.idea​

​文件夹,意味着:

  1. 删除项目的配置信息,如debug configuration;
  2. Git Stash信息,未提交的工作到一般的本地修改;
  3. 内嵌数据库Database执行器console执行历史SQL语句记录。

结论:Database执行器console执行历史SQL语句记录在文件夹:​

​C:\Users\<awesome_me>\AppData\Roaming\JetBrains\IntelliJIdea2020.3\consoles\db​

​下面。

附:找回Database执行器console执行历史SQL语句记录方法,

Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)

IDEA会自动备份console的修改记录,右键:

Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)

找到本地的修改记录:

Disconnected from the target VM, address: ‘127.0.0.1:‘, transport: ‘socket‘(权威+靠谱)

结论:

参考