Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use
当我尝试在Eclipse中运行Tomcat上的简单JSP程序时,我收到以下错误。
Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).
这是怎么造成的,我该如何解决?
您已经运行了另一个Tomcat实例。您可以通过转到Web浏览器中的
你需要关闭它。转到Tomcat安装文件夹的
或者,如果您出于某种原因实际将其安装为Windows服务(这意味着生产并且在您刚开发时无用),请打开服务管理器("开始">"运行">"services.msc")并停止Tomcat服务。如有必要,请完全卸载Windows服务。对于开发,只需ZIP文件即可。
或者,如果您的实际意图是同时运行两个Tomcat实例,则必须配置第二个实例以侦听不同的端口。有关更多详细信息,请参阅Tomcat文档。
1 | kill $(ps -aef | grep java | grep apache | awk '{print $2}') |
- 无需重启Eclipse
- 如果您收到上述错误,只需在终端输入此行即可
- 再次在Eclipse中启动tomcat。
- 仅适用于基于Linux的系统(Ubuntu ..etc)
如果您在Windows上运行,请在命令行提示符下尝试:
1 | netstat -ano |
这将显示正在使用的所有端口以及正在使用该端口的进程的进程ID PID#。
然后Ctrl + Alt + Del并打开任务管理器以查看哪个进程。
然后,您可以选择关闭/停止它或将服务器配置为使用其他端口。
要检查新选择的端口(例如8010)是否可用,请执行以下操作:
1 | netstat -ano | grep 8010 |
如果它没有返回任何行,那么你没事。
要更改端口,请转到"服务器"视图,打开server.xml并在那里更改端口。
我有这个条目:
1 | Connector port="8010" protocol="AJP/1.3" redirectPort="8443" |
如果你在mac环境中,这就是我所做的。
在终端上查找在此端口上运行的进程ID,例如8080:
1 | lsof -i :8080 |
杀了它:
1 | kill -9 <PID> |
自由端口的步骤已经用于在Eclipse中运行tomcat服务器
例如,假设使用8080端口,我们需要使8080运行tomcat
步骤1:
C: Users username> netstat -o -n -a | findstr 0.0:8080
TCP 0.0.0.0:3000 0.0.0.0:0听到3116
现在,我们可以看到8080的LISTENING端口是3116,
我们现在需要杀3116
第2步:-
C: Users username> taskkill / F / PID 3116
第3步:
转到Eclipse并启动Server,它将运行
如果你使用Eclipse然后双击服务器并双击tomcat服务器,那么将打开一个文件。在该文件中将HTTP端口更改为其他端口号并保存(Ctrl + S)然后再次启动服务器。
如果Eclipse说
Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhost are already in use
出现此错误是因为tomcat可能在后台运行,因此首先停止该服务器。请按照以下详细信息进行操作。
解决方案是:
谢谢!
我没有其他Tomcat实例运行广告,没有其他进程使用"Tomcat端口"(在我的情况下,8088端口)。
Eclipse在启动Tomcat时发送相同的消息:
....服务器可能已经在另一个进程中运行,或者系统进程可能正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。
我用这种方式解决了这个问题:
- 通过提示转到tomcat的bin
- 启动startup.bat
- 启动shutdown.bat
- 通过Eclipse启动tomcat
在阅读了所有建议的答案之后我做了什么,因为我知道我的端口已经被使用了。我在eclipse的Servers选项卡下双击了Tomcat,它打开了概述信息,然后找到了端口信息。刚刚更改了冲突端口,因为我的是8009端口(启动服务器时提到错误)。我已将其更改为8008并且工作正常。如果更改的端口未使用,请尝试启动服务器。
步骤1:netstat -a -o -n它将显示网络列表,搜索本地地址,如127.0.0.1:8080并记下PID(eq 3624)
1 | C:\>netstat -a -o -n |
第2步:taskkill / F / PID 3624。运行此命令以终止该进程。
1 | C:\>taskkill /F /PID 3624 |
链接到帖子
解决问题的简便方法:
服务器可能已在另一个进程中运行,或者系统进程可能正在使用该端口。要杀死该端口,请执行以下操作:
1)从以下链接下载TCPView(仅285kb)。
http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx
2)提取文件夹并启动TCPView应用程序。
3)右键单击java.exe(因为java进程通常使用8009,8005端口)并选择End Process选项。
这会轻易阻止另一个过程..
注意:运行TOMCATPATH / bin / shutdown.bat可能不会关闭Tomcat,因为它包含一些恶魔或非托管
线程。在这种情况下,TCPView工作正常,没有任何问题。
在Windows上使用命令来停止已经运行的tomcat实例并尝试在eclipse中再次运行它,它可能会起作用。
1 | net stop tomcat7 |
或者,如果您只想在其他端口上运行,则可以更改服务器XML中的端口。
如果上述努力都没有帮助,这里还有一个选择。您可能正在使用共享驱动器中的Eclipse(例如,H :)。如果是这样,将整个Eclipse目录移动/复制到C:并再试一次。
我的Eclipse无法打开Tomcat服务器的端口(出现上述错误),甚至连接到Internet。我还尝试了另一个Tomcat插件(Sysdeo),它也无法打开端口。
这些是我试过的选项:
检查并杀死其他Tomcat实例
-
在命令提示符下,
netstat -ano 并检查是否有其他进程正在使用冲突的端口。 - 找到PID并杀死它
- 尝试再次启动服务器。
在Eclipse中更改Tomcat端口
- 在Eclipse Server选项卡中,双击Tomcat实例。这将打开配置选项卡。
- 在"端口"下,更改端口号。 (例如,18080)。
杀死java.exe和javaw
- 在任务管理器中,查找并删除java.exe和javaw(请参阅https://stackoverflow.com/a/25334782/4212710和https://stackoverflow.com/a/26136890/4212710)
- 尝试再次启动服务器。
请参阅我对Eclipse未连接到Internet的其他答案(https://stackoverflow.com/a/372??46087/4212710)。
对于Windows用户:
使用CTRL + SHIFT + ESC组合键直接转到任务管理器。
通过右键单击并选择"结束任务"来终止"java.exe"进程。
如果您在Eclipse中处于Java EE前景并尝试在调试模式下在Eclipse中启动Tomcat服务器,那么您将收到此类错误。您必须切换到Eclipse中的调试预期。我已经解决了这个问题。
有时如果在尝试shutdown.bat @BalusC建议之后没有释放端口,你可以杀死javaw进程。请执行以下步骤:
输入命令ps。您可能会看到如下图像:
查看进程"javaw"的进程号。进程号是列中最右边的数字,我在javaw的图像进程号中突出显示了例子。
输入命令kill。 javaw被杀了,现在你必须能够运行该程序。
如果在基于Windows 7或10的操作系统中出现上述问题,则会出现问题,因为Tomcat作为Windows服务运行。要阻止Tomcat作为Windows服务运行,请打开Windows控制面板。找到服务"Apache Tomcat"并停止它。
另一种方法是使用cmd终止在端口8080上运行的进程。
打开cmd以管理员身份运行它。
C: users username> taskkill / F / PID 2160
我检查了所有的答案,但
如果你有所有共享的终端访问权限,它将没有帮助,或者你可能没有权限杀死PID。
在这种情况下,您可以做的是:
对我有用的更简单的修复是通过"服务器"选项卡从tomcat删除我当前部署的webapps。一旦我删除它们,问题就会消失。只需通过运行方式>运行在服务器上重新部署项目。
即使发送了关闭指令,当Apache Tomcat无法正常终止时,也会出现此问题。在我的情况下,使用Tomcat 8,这会发生令人讨厌的规律性。幸运的是,您可以使用Windows PowerShell和
以下PowerShell脚本将解析
1 2 3 4 5 | 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] } |
如果
最后,我应该指出Linux上的情况更好,因为您可以指示Tomcat在启动时将其PID保存到文件并使用开关强制关闭,稍后 - 'nix系统的关闭脚本已经具有不需要使用
可能是因为您没有正确停止tomcat服务。为此,在那里打开您的任务管理器,您可以看到
就我而言,它给了我错误:tomcat v8.0 Server在localhost上所需的端口8005已经在使用中
我在apache-tomcat-8.0.39 conf server.xml中更改了8005端口,但没有反映出更改。然后我从eclipse做了这些改变。通过双击服务器并将端口从8005修改为8006,它可以正常工作。
在放入8006之前,如果此端口可用,我检查了Windows shell。执行以下命令:
1 | netstat -a -o -n | findstr 8006 |
请参阅以下博客"如何杀死tomcat而无需重新启动计算机"
http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html
希望这将有助于未来的人。
不需要关闭你的eclipse IDE.Your Tomcat可能已经运行了。这就是你有错误的原因。
从命令终端打开tomcat目录>> bin >>(在我的例子中是tomcat9)
输入命令
./shutdown.sh
它会关闭你正在运行的tomcat
在Eclipse上,在项目"Servers"下对Tomcat配置文件夹进行原始删除。
我试着把它作为最后的希望而且有效。
在Windows的情况下,我经历了一些新的东西......
从/ bin文件夹停止tomcat将立即释放端口8080.释放端口大约需要5-10分钟。如果我尝试运行我的项目,再过10分钟
运行 - >在服务器上运行..它允许运行。
我不确定我的理解是否正确!
Several ports (8005, 8080, 8009) required by Tomcat vX.X Server at localhost are already in use
要检查Tomcat的另一个实例是否已在运行或某个其他进程是否正在使用您可以使用的端口:
netstat -b -a in command prompt for windows. This lists the ports in use and gives you the executable that's using each one. You need to be in the admin group to do this.
你可能得到这样的东西:
TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8080 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]
打开任务管理器Ctrl + Shift + Esc,并使用这些端口终止
当项目中的其他人也使用与您使用的相同端口号时,就会发生这种情况!
双击tomcat服务器,将端口号更改为8585或其他任何内容。代码现在开始运行了!
你的Tomcat可能已经运行了。这就是你有错误的原因。我之前遇到过同样的问题。我很简单地解决了它:
就这样。
最简单的解决方案
用于终止多个端口的单行命令:
1 | kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed |
如何使用PID终止Windows服务 -
谢谢
杀死一个停止或启动的Windows服务
在Windows操作系统中,右键单击任务栏 - >启动任务管理器 - >进程然后检查java.exe或javaw是否正在运行,如果它正在运行,然后单击它并执行结束进程然后重新启动tom cat服务器。