提问者:小点点

运行Spring Boot应用程序时“地址已在使用中:绑定”


我在运行示例Spring Boot Application时遇到问题。当我尝试运行它时,会出现以下错误:

 java.net.BindException: Address already in use: bind
            at sun.nio.ch.Net.bind0(Native Method)
            at sun.nio.ch.Net.bind(Unknown Source)
            at sun.nio.ch.Net.bind(Unknown Source)
            at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
            at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
            at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:473)
o.apache.catalina.core.StandardService   : Failed to initialize connector [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]

    org.apache.catalina.LifecycleException: Failed to initialize component [Connector[org.apache.coyote.http11.Http11NioProtocol-8080]]
            at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
            at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
            at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
            at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814)
            at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
            at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335)
            at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize(TomcatEmbeddedServletContainer.java:57)
            at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.<init>(TomcatEmbeddedServletContainer.java:52)
            at 

共3个答案

匿名用户

第一次运行它是否可以,再次运行它会出现错误?如果是这种情况,您需要在再次运行之前停止服务。这是一种停止方法。单击如下所示的停止按钮:

匿名用户

“地址已在使用中”意味着已经有另一个应用程序在端口8080上运行。在启动应用程序之前,使用您的OS工具找到该进程并结束它,或者让您的应用程序在另一个端口上运行。如果您在引导应用程序中使用嵌入式服务器,您可以指定以下属性:

server.port=8085 

当然,您可以选择您想要的任何端口。

匿名用户

我有一个非常简单的解决方案:

如上所述,当您启动Spring Boot应用程序时,控制台将显示底层服务器(Tomcat或Undertow或其他)的PID;您可以再次启动应用程序而不终止前一个,尤其是当您处于调试模式时,因此会出现错误。这也适用于Intellij。

但是,如果您重新启动,则PID不再可用,因为先前的会话输出已被清除。

因此,如果您正在使用Eclipse,只需关闭它,并打开任务管理器来终止其他java. exeJVM进程。确保您没有其他无法停止的基于JVM的服务正在运行。(如Kafka服务器、Apache Storm等)

Tomcat实例就是其中之一。