已经在使用的地址:JVM_Bind java

时间:2010-05-05 11:25:19

标签: java web-applications jboss struts

每当我重新启动构建的应用程序时,有时会这样做 Java的 支柱 Mysql和Jboss 4.05版本 我收到错误已使用的地址:JVM_Bind

只有修复,我知道是重新启动机器并再试一次,它会工作。 其他有时我会做Ctrl-Alt-Del并停止与Java相关的所有过程,有时这也有效。

但究竟是什么原因以及我们如何防止这个问题?

15 个答案:

答案 0 :(得分:44)

  

已在使用的地址:JVM_Bind

表示某些其他应用程序已在侦听当前应用程序尝试绑定的端口。

您需要做的是,更改当前应用程序的端口或更好;找出已经运行的应用程序并将其删除。

在Linux上,您可以使用

找到应用程序pid
netstat -tulpn

答案 1 :(得分:26)

在Windows中,这种情况发生在Eclipse崩溃而没有干净关闭时,它将使本地Jetty或Tomcat服务器继续运行。 当您重新打开Eclipse并尝试再次启动服务器时,这将导致正在使用的"地址:JVM_Bind"

您可以通过打开任务管理器并找到javaw.exe进程并结束它来解决此问题。

然后您可以在Eclipse上重新启动服务器。

enter image description here

答案 2 :(得分:13)

当服务器(我使用JBoss)的端口已经在使用时,我经常遇到这个

常见嫌疑人

  1. Apache Http Server =>如果在Windows中工作,请拒绝服务。
  2. IIS =>使用
  3. 停止ISS
  4. Skype =>是的,我让skype附加到端口80
  5. 要更改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 -ntasklist以查看当前正在运行的进程。 找到与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绑定异常选项:

  1. 启动和停止服务器。并检查服务器进程ID并终止并停止服务器。
  2. 转到控制面板 - &gt;管理工具 - &gt;服务 - &GT;检查所有服务器并停止所有服务器,然后启动自己的服务器。
  3. 更改您使用的浏览器。例如,如果 你使用IE,将其改为Mozilla firefox。

答案 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 并杀死它们。这可能是端口已在使用错误的罪魁祸首。