有时候当我重启以下应用程序(基于Java、Struts、Mysql和Jboss 4.05版本),会出现错误:Address already in use: JVM_Bind
我所知道的唯一修复方法是重新启动机器并再次尝试,它就可以工作了。 否则,有时我按Ctrl-Alt-Del并停止所有与Java相关的进程,这也有时有效。
但是确切的原因是什么,我们该如何防止这个问题发生?
有时候当我重启以下应用程序(基于Java、Struts、Mysql和Jboss 4.05版本),会出现错误:Address already in use: JVM_Bind
我所知道的唯一修复方法是重新启动机器并再次尝试,它就可以工作了。 否则,有时我按Ctrl-Alt-Del并停止所有与Java相关的进程,这也有时有效。
但是确切的原因是什么,我们该如何防止这个问题发生?
我在Windows上也遇到了同样的问题。我的解决方案是找出调试要连接的端口号。(在IntelliJ中,一个红色矩形已经给出了信息:“运行Tomcat时出错:无法打开调试器端口(127.0.0.1:XXXXX):...已经在使用中...”) 假设XXXXX是端口号。 然后我在cmd窗口中搜索了问题和PID:
netstat -ano | find "CLOSE_WAIT" | find ":XXXXX"
我在结果行中得到了PID号码,它是最后一个数字。(假设为YYYY) 最后:
TASKKILL /PID YYYY
最近我在Eclipse中启用JMX时遇到了这个问题,我错误地为每个服务器设置了相同的端口。
只需为每个JMX远程设置不同的端口即可。
服务器1
-Dcom.sun.management.jmxremote.port=9000
服务器2
-Dcom.sun.management.jmxremote.port=9001
我也遇到了这个问题。对我来说,我无法启动/停止openfire(它显示已经停止,但是所有东西仍在运行)
sudo /etc/init.d/openfire stop
sudo /etc/init.d/openfire start
另外,重启Apache也没有帮助
sudo /etc/init.d/apache2 restart
错误发生在以下位置:
/opt/openfire/logs/stderror.log
Error creating server listener on port 5269: Address already in use
Error creating server listener on port 5222: Address already in use
请尝试以下选项以解决JVM绑定异常:
您可以尝试删除团队服务器凭据,很可能这些凭据中会包含服务器列中的某种端口。 例如 https://wathever.visualstudio.com:443
前往 Windows/Preferences 展开 Team 然后选择 Team Foundation Server 进入凭据并删除其中的任何内容。
lsof -i:8080
,但我什么也得不到,没有pid。好像一定有某些东西正在进行。如果你遇到了这种情况,那可能是docker导致的。你可以使用docker ps
命令检查是否有任何旧的docker未关掉并将其终止。这可能是端口已被占用的罪魁祸首。在 Mac 上,即使我使用 netstat
进行搜索,也没有进程绑定到该端口,但我仍然会收到“地址已在使用中”的绑定异常。
在这种情况下,如果确实没有正在运行该端口的进程,则可以进入
Safari -> 首选项 -> 隐私 -> 管理网站数据... -> 找到“localhost” -> 删除
解决了问题。似乎 Safari 的 Web 缓存以某种方式保留了对该端口的引用,删除该缓存会释放该端口。