近日Win10系统上把WebStorm版本更新到最新版之后,启动出现以下报错,但不是每次都出现
java.util.concurrent.CompletionException: java.net.BindException: Address already in use: bind
打开idea.log还能发现更详细的报错信息
ERROR - llij.ide.plugins.PluginManager - java.net.BindException: Address already in use: bind
第一时间反应过来就是某个进程占用了WebStorm的插件管理器需要绑定的某个端口,但是日志里并没有说占用的是哪一个端口。因为出现这问题当天的上一天还跑得好好的,也没有安装新的应用,或者修改了过应用的监听端口之类的配置。不过这段异常信息提供了一个官方支持的超链接,https://intellij-support.jetbrains.com/hc/en-us/articles/360007568559,于是打开看一下有啥解决办法。打开后,发现有几个解决方法。
- 删除第三方插件的目录(idea.plugins.path)
- 重新下载IDE
- 删除IDE系统目录(idea.system.path)
- 删除配置目录(idea.config.path)
- 提交异常堆栈信息给官方
除了最后一个我都试过问题依然存在。于是我直接官方支持原文使用页面搜索定位关键字,找到有个开发者出现同样的问题,下一楼就有官方的人出来解答。原文下图所示说得很详细,我直接瞄到重点就是说,ide本地会启动一个服务端,这服务端会从6942-6991端口范围内挑选一个可用的端口绑定,并且说了这50个端口全都被占用,可能是网络问题或者是某应用不允许IDE在该范围内的任何端口上绑定,建议通过netsh winsock reset重置一下网络。我第一时间没有重置网络,而是想了一下可能占用这端口范围的进程,立马就想到之前遇到过的保留端口占用问题。于是立马通过以下命令查询一下这端口范围是否属于保留端口
netsh interface ipv4 show excludedportrange protocol=tcp
直接打开cmd一敲,出现很多个范围端口都不能用,然后往下看,果不其然这范围是属于系统保留端口。于是直接按上面的教程关闭了hyper-v,然后重启计算机,再敲命令看保留端口范围,发现已经不包括6942-6991这端口范围了,于是立马再打开WebStorm,正常跑起来了,问题到此为止顺利解决了。