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

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

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


当前回答

以上都不适合我。

我找到的是点击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

这样就有用了。

其他回答

在Eclipse上对项目“Servers”下的Tomcat配置文件夹进行原始删除。 作为最后的希望,我试了一下,结果成功了。

有时,如果在尝试@BalusC建议的shutdown.bat后端口仍未释放,您可以杀死javaw进程。执行以下步骤:

点击开始菜单,打开“Windows powershell” 打开前单击右键,选择“以管理员身份运行” 输入命令ps,你可能会看到如下图片: 查看进程“javaw”的进程号。进程号是列中最右边的数字,例如我在javaw的图像进程号中高亮显示。 输入命令kill。Javaw被杀死,现在您必须能够运行程序。

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

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

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

Tomcat vX需要的几个端口(8005,8080,8009)。本地主机上的X服务器已经在使用

检查Tomcat的其他实例是否已经在运行,或者其他进程是否正在使用您可以使用的端口:

Netstat -b -a在windows命令提示符中。这将列出正在使用的端口,并为您提供使用每个端口的可执行文件。您需要在管理组中才能执行此操作。

你可能会得到这样的东西:

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe] 192.168.0.1:0监听196 [Tomcat7.exe] TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

打开任务管理器Ctrl+Shift+Esc,关闭Tomcat7.exe或使用这些端口的任何其他进程。

当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进行探测工作。