当我试图在Eclipse中的Tomcat上运行一个简单的JSP程序时,我得到了以下错误。

Tomcat v6.0服务器在本地主机上所需的几个端口(8005、8080、8009)已经被使用。服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。

这是如何引起的,我该如何解决它?


当前回答

windows用户:

使用CTRL+SHIFT+ESC组合键直接进入任务管理器。

通过右键单击并选择“End Task”来终止“java.exe”进程。

其他回答

参考以下博客“如何在不重启计算机的情况下杀死tomcat”

http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html

希望这对将来的人们有所帮助。

解决问题的简单方法:

服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。为了关闭该端口,请执行以下操作:

1)从以下链接下载TCPView(只有285kb)。

http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx

2)解压文件夹,启动TCPView应用程序。

3)右键单击java.exe(因为8009,8005端口通常被java进程使用),并选择结束进程选项。

这将很容易地停止另一个进程。

注意:运行TOMCATPATH/bin/shutdown.bat可能不会在Tomcat包含恶魔或非托管时关闭Tomcat 线程。在这种情况下,TCPView工作正常,没有任何问题。

Macbook的解决方案:

步骤1:停止运行Java的服务器:

打开活动监视器到应用程序>实用程序>活动监视器。或简单按CMD +空格键,并开始键入活动监视器。 寻找运行Java的进程,并在终端中输入以下命令将其终止

kill -STOP <PID> 

其中PID是Activity Monitor中显示的Java进程的进程号。重复执行几次,然后关闭并重新打开Activity Monitor以检查Java是否正在运行。

第二步:修改端口:

在Eclipse中的服务器上右键单击“Open”。将端口号从8080修改为8081或更大的值。

这应该会启动您的服务器。

以上都不适合我。

我找到的是点击Details按钮。

然后在Eclipse中使用Tomcat运行web服务时,出现多个具有相同路径的上下文错误

删除了重复的行,然后我得到了另一个错误。

The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.

在Eclipse中无法启动tomcatv9.0

这样就有用了。

当Apache Tomcat不能正确终止时,即使发送了关闭指令,也会出现这个问题。在我使用Tomcat 8的情况下,这种情况经常发生,令人讨厌。幸运的是,您可以使用Windows PowerShell和netstat命令创建一个简单的脚本来终止进程。

下面的PowerShell脚本将解析netstat的输出,以找到监听127.0.0.1:8005的任何进程,提取其PID,然后杀死该进程:

netstat -a -o -n `
 | select -skip 4 `
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
 | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
 | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }

如果server.xml将Tomcat配置为使用不同的端口或IP,则相应地编辑脚本第四行上的正则表达式。

最后,我应该指出,Linux上的情况要好一些,因为您可以指示Tomcat在启动时将其PID保存到一个文件中,然后使用开关强制关闭—用于nix系统的关闭脚本已经具有杀死进程的能力,并且不需要使用netstat进行探测工作。