java.net.BindException:已在使用的地址:JVM_Bind <null>:80 </null>

时间:2014-09-09 10:58:56

标签: java tomcat exception-handling

我在启动Tomcat服务器时遇到绑定异常。 我试图杀死正在使用&#39; 80&#39;因为有几个进程正在使用它。

获取错误,同时终止进程ID是&#39; 0&#39;:

  

错误:无法终止PID 0的进程。原因:这是   关键系统过程。 Taskkill无法结束此过程。

如何解决这个问题?

我不需要使用其他端口来运行tomcat服务器。

13 个答案:

答案 0 :(得分:11)

错误:

  

java.net.BindException:已在使用的地址:JVM_Bind:80

表示另一个应用程序正在侦听端口80。

您可以通过lsof命令检查哪个进程正在使用此端口,例如sudo lsof -i:80。然后停止或杀死它。

如果无法帮助查找在同一端口上运行的应用程序,则常见的错误是Tomcat配置错误。

例如,默认情况下,Tomcat在端口8005上侦听SHUTDOWN命令,如果您将另一个连接器设置为侦听同一端口,则会发生端口冲突。

因此,请仔细检查server.xml这些端口是否不同:

<Server port="8005" shutdown="SHUTDOWN">
    <Connector port="8983" protocol="HTTP/1.1"

答案 1 :(得分:7)

将Tomcat设置为侦听端口80 WRONG ,为了进行开发,8080是一个很好用的端口。对于生产用途,只需设置一个apache,将您的请求转发给您的tomcat。 Here是如何做到的。

答案 2 :(得分:5)

PID 0是系统空闲进程,它肯定不会侦听端口80.你是如何检查哪个进程正在使用该端口?

您可以使用

netstat /nao | findstr "80"

找到PID并检查它是什么过程。

答案 3 :(得分:3)

使用以下命令查找您的tomcat端口是否已被使用

netstat -a -b

<强>异常java.net.BindException: Address already in use: JVM_Bind:80

表示端口80由Tomcat服务器配置,并且已由计算机上运行的其他某个应用程序使用。如果打开,请退出Skype,或将Skype或其他应用程序的端口中的默认端口更改为80以外的其他端口。或者将servercat文件中的tomcat端口更改为80以外的其他端口(例如8080或9090)。 tomcat安装目录的config文件夹。

<强>异常java.net.BindException: Address already in use: JVM_Bind

表示您正常停止tomcat服务器,并且您正在尝试再次启动服务器。在Eclipse中,我的解决方案是从服务器选项卡中删除项目,然后右键单击并在服务器上运行项目。这将项目添加回Tomcat 7并且我没有得到BindException错误。这是因为上次使用而不停止Tomcat服务器时关闭了eclipse。

答案 4 :(得分:2)

我犯了一个愚蠢的错误,我花了2个小时来解决它。我在这里提到它,其他人可能会帮助他们。错误是我启用了ssl连接器并将https和http端口都改为相同的数字。

答案 5 :(得分:0)

如果你有一些进程侦听端口8080,那么你总是可以配置tomcat来侦听不同的端口。通过编辑位于tomcat服务器server.xml目录下的conf来更改侦听器端口。

在server.xml中搜索Connector port="8080"并将端口号更改为其他端口。

答案 6 :(得分:0)

错误:

  

Tomcat:java.net.BindException:已在使用的地址:JVM_Bind   :80

表示端口80已在使用中 你可以:

  • 尝试搜索该过程并将其停止或
  • 让你的tomcat在不同的(免费)端口上运行

另请参阅:Deployment error:Starting of Tomcat failed, the server port 8080 is already in use

答案 7 :(得分:0)

我删除了我的服务器并将其添加回来。发生这种情况是因为我通过任务管理器手动关闭了eclipse,并没有关闭tomcat。

答案 8 :(得分:0)

C:\ Program Files(x86)\ Apache Software Foundation \ Tomcat 7.0 \ conf

您在Source.xml文件夹中的端口ID是8080.将端口号更改为8081 ...等等

答案 9 :(得分:0)

我完全忘了我以前安装了另一个版本的Apache Tomcat,这导致了这个问题。所以,只需尝试卸载以前的版本。希望它有所帮助。

答案 10 :(得分:0)

确保/ webapps / ROOT文件在那里,并且包含所有图标WEB-INF,并且index.jsp在该文件夹中。

启动Tomcat时,它将在<Tomcat-Directory>/conf/web.xml目录中运行以下代码:

<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

index.jsp的位置在<Tomcat-Directory>/webapps/ROOT/index.jsp

另外,请尝试使用./catalina.sh start而不是./startup.sh从/ bin目录运行tomcat。由于某些原因,./startup.sh不够可靠。

答案 11 :(得分:0)

我遇到了同样的问题。我收到错误无法打开调试器端口(127.0.0.1:63936):java.net.BindException“地址已在使用中:JVM_Bind” 我首先尝试了所有选项,但是无论如何都无法解决。对我有用的解决方案是,我启动服务器,然后停止然后再次以调试模式启动。然后服务器以调试模式启动。

答案 12 :(得分:-1)

我在使用tomcat的spring项目中遇到了这个问题:

  

已在使用的地址:JVM_Bind

screenshot of bin folder

要解决此问题,我在tomcat / bin文件夹中运行了shutdown.bat文件。