每当我重新启动构建的应用程序时,有时会这样做 Java的 支柱 Mysql和Jboss 4.05版本 我收到错误已使用的地址:JVM_Bind
只有修复,我知道是重新启动机器并再试一次,它会工作。 其他有时我会做Ctrl-Alt-Del并停止与Java相关的所有过程,有时这也有效。
但究竟是什么原因以及我们如何防止这个问题?
答案 0 :(得分:44)
已在使用的地址:JVM_Bind
表示某些其他应用程序已在侦听当前应用程序尝试绑定的端口。
您需要做的是,更改当前应用程序的端口或更好;找出已经运行的应用程序并将其删除。
在Linux上,您可以使用找到应用程序pidnetstat -tulpn
答案 1 :(得分:26)
在Windows中,这种情况发生在Eclipse崩溃而没有干净关闭时,它将使本地Jetty或Tomcat服务器继续运行。 当您重新打开Eclipse并尝试再次启动服务器时,这将导致正在使用的"地址:JVM_Bind"
您可以通过打开任务管理器并找到javaw.exe进程并结束它来解决此问题。
然后您可以在Eclipse上重新启动服务器。
答案 2 :(得分:13)
当服务器(我使用JBoss)的端口已经在使用时,我经常遇到这个
常见嫌疑人
要更改JBoss 4.2.x自身绑定的端口,请转到:
“C:\ jboss4.2.2 \服务器\默认\部署\的jboss-web.deployer \ server.xml中”
这里默认是服务器的实例 在这里更改端口:
< Connector port =“8080” address =“$ {jboss.bind.address}”>
在上面的示例中,端口绑定到8080
答案 3 :(得分:5)
打开命令行并键入:netstat -a -o -n
或tasklist
以查看当前正在运行的进程。
找到与Java相关的端口并键入:taskkill /F /PID <your PID number>
。
单击Enter。
答案 4 :(得分:3)
MySql是否可能在与JBoss相同的端口上进行侦听?
错误消息中是否指定了端口号 - 类似于Address already in use: JVM_Bind:8080
您可以更改JBoss server.xml中的端口来测试它。
答案 5 :(得分:1)
关于如何防止它的快速答案是你很可能需要在再次启动JBoss之前停止它。
您应该可以在控制台视图中调用“终止”按钮来关闭服务器。
答案 6 :(得分:1)
该错误表示您正在尝试在另一个ServerSocket
已在使用的端口上创建新的ServerSocket
。因此,尝试让您的应用程序关闭您所知道的所有套接字和连接,并确保您的应用程序完全终止。还要检查您的程序是否启动了另一个过程。
答案 7 :(得分:1)
它也可能是由.. \ tomcat \ conf \ server.xml中端口8080的双重定义引起的:
<Connector port="8080"
enableLookups="false" redirectPort="8443" debug="0"/>
<Connector port="8080"
enableLookups="false" address="127.0.0.1" maxParameterCount="30000"/>
答案 8 :(得分:0)
请尝试以下JVM绑定异常选项:
答案 9 :(得分:0)
我也有这个问题。对我来说,我无法启动/停止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
我修复此问题的方法,实际上我必须关闭主机管理区域内的服务器。
答案 10 :(得分:0)
我在Windows上也一样。我的解决方案是获取调试要连接的端口。 (在IntelliJ中,一个红色矩形已经提供了信息:&#34;运行Tomcat时出错:无法打开调试器端口(127.0.0.1:XXXXX):...已经在使用......&#34;) 我们假设XXXXX是端口号。 然后我在cmd窗口中搜索问题和PID:
netstat -ano | find "CLOSE_WAIT" | find ":XXXXX"
我将PID编号作为结果行中的最后一个数字。 (让我们说YYYY) 最后:
TASKKILL /PID YYYY
额外信息:Winscp同时退出,可能是导致我的问题。 :)
答案 11 :(得分:0)
最近发生在我在Eclipse中运行两个运行的tomcat服务的JMX时。我错误地为每个服务器安装了相同的端口。
只需为每个jmx遥控器提供不同的端口
服务器1
-Dcom.sun.management.jmxremote.port=9000
服务器2
-Dcom.sun.management.jmxremote.port=9001
答案 12 :(得分:0)
您可以尝试删除Team Server凭据,很可能这些凭据将在服务器列中包含某种端口。 像https://wathever.visualstudio.com:443
转到Windows /首选项 展开团队,然后展开Team Foundation Server 转到“凭据”并删除其中的任何一个。
答案 13 :(得分:0)
在 Mac 上,即使我使用 netstat
进行搜索,也没有进程绑定到该端口,但我仍然会收到“地址已在使用中”绑定异常。
在这种情况下,进入
Safari -> 首选项 -> 隐私 -> 管理网站数据... -> 找到“本地主机” -> 删除
修复问题,如果确实没有进程使用该端口运行。 Safari 的网络缓存似乎以某种方式维护了对端口的引用,删除该缓存可以释放端口。
答案 14 :(得分:0)
有时,我使用 docker ps
却一无所获,也没有 pid。嗯,必须发生一些事情。如果这是您的情况,则可能是 docker。通过使用 {{1}},您可以检查周围是否有旧的 docker 并杀死它们。这可能是端口已在使用错误的罪魁祸首。