当我尝试在Eclipse中运行Tomcat上的简单JSP程序时,我收到以下错误。
Tomcat v6.0 Server在localhost上所需的几个端口(8005,8080,8009)已在使用中。服务器可能已在另一个进程中运行,或者系统进程可能正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。
这是如何引起的?如何解决?
答案 0 :(得分:445)
您已经运行了另一个Tomcat实例。您可以通过转到webbrowser中的http://localhost:8080
来确认这一点,并检查是否获得了Tomcat默认主页或Tomcat特定的404错误页面。两者都是Tomcat运行正常的有效证据;如果没有,那么你会得到一个特定于浏览器的HTTP连接超时错误消息。
您需要关闭它。转到Tomcat安装文件夹的/bin
子文件夹,然后执行shutdown.bat
(Windows)或shutdown.sh
(Unix)脚本。如果徒劳,请关闭Eclipse,然后打开任务管理器并终止所有java
和/或javaw
进程。
或者,如果您因某种原因将其实际安装为Windows服务(这意味着生产并且在您刚开发时无用),请打开服务管理器(开始>运行>服务。 msc )并停止Tomcat服务。如有必要,请完全卸载Windows服务。对于开发,只需ZIP文件即可。
或者,如果您的实际意图是同时运行两个Tomcat实例,那么您必须配置第二个实例以侦听不同的端口。有关更多详细信息,请参阅Tomcat文档。
答案 1 :(得分:51)
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
答案 2 :(得分:28)
如果您在Windows上运行,请在命令行提示符下尝试:
netstat -ano
这将显示正在使用的所有端口以及正在使用该端口的进程的进程ID PID#。 然后 Ctrl + Alt + Del 并打开任务管理器以查看该过程是什么。
然后,您可以选择关闭/停止它或将服务器配置为使用其他端口。 要检查新选择的端口(例如8010)是否可用,请执行以下操作:
netstat -ano | grep 8010
如果它没有返回任何行,那么你没事。
要更改端口,请转到“服务器”视图,打开 server.xml 并更改端口。 我有这个条目:
Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
答案 3 :(得分:20)
答案 4 :(得分:17)
释放已用于在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 LISTENING 3116
现在,我们可以看到,对于8080,LISTENING端口是3116,
我们现在需要杀掉3116
第2步: -
C:\ Users \ username> taskkill / F / PID 3116
第3步: 转到Eclipse并启动Server,它将运行
答案 5 :(得分:14)
如果您使用Eclipse,则双击服务器并双击tomcat服务器,然后将打开一个文件。在该文件中将HTTP端口更改为某个其他端口号并保存( Ctrl + S )然后再次启动服务器。
答案 6 :(得分:12)
如果Eclipse说
Tomcat v6.0 Server在localhost上所需的几个端口(8005,8080,8009)已在使用中
出现此错误是因为tomcat可能在后台运行,因此首先停止该服务器。请按照以下详细信息进行操作。
解决方案是:
谢谢!
答案 7 :(得分:10)
我没有其他运行Tomcat的实例,没有其他进程使用" Tomcat端口" (就我而言,8088端口)。 Eclipse在启动Tomcat时发送相同的消息:
....服务器可能已经在另一个进程中运行,或者系统进程可能正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。
我用这种方式解决问题:
答案 8 :(得分:6)
第1步: netstat -a -o -n ,它会显示网络列表,搜索127.0.0.1:8080等本地地址并注意PID(eq 3624)
C:\>netstat -a -o -n
第2步: taskkill / F / PID 3624 。运行此命令以终止该进程。
C:\>taskkill /F /PID 3624
链接到post
答案 9 :(得分:6)
在阅读了所有建议的答案之后我做了什么,因为我知道我的端口已经在使用中。我在eclipse的Servers选项卡下双击了Tomcat,它打开了概述信息,然后找到了端口信息。刚刚更改了冲突端口,因为我的是8009端口(启动服务器时提到错误)。我已将其更改为8008并且工作正常。如果更改的端口未使用,请尝试启动服务器。
答案 10 :(得分:4)
解决问题的简便方法:
服务器可能已在另一个进程中运行,或者系统进程可能正在使用该端口。要杀死该端口,请执行以下操作:
1)从以下链接下载 TCPView(仅限285kb)。
http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx
2)提取文件夹并启动 TCPView 应用程序。
3)右键单击 java.exe (因为java进程通常使用8009,8005端口)并选择结束进程选项。
这会轻易阻止另一个过程..
注意:运行 TOMCATPATH / bin / shutdown.bat 可能无法关闭Tomcat,因为它包含一些恶魔或非托管 线程。在这种情况下, TCPView 可以正常运行。
答案 11 :(得分:4)
在Windows上使用命令 来停止已经运行的tomcat实例,并尝试在eclipse中再次运行它,它可能会起作用。
net stop tomcat7
如果您只想在其他一些端口上运行,也可以 更改服务器XML 中的端口。
答案 12 :(得分:2)
对于Windows用户:
使用CTRL + SHIFT + ESC组合键直接转到任务管理器。
杀死" java.exe"右键单击并选择"结束任务"。
答案 13 :(得分:2)
有时如果在尝试shutdown.bat @BalusC建议的东西之后没有释放端口,你可以杀死javaw进程。请执行以下步骤:
输入命令ps。您可能会看到如下图像:
查看进程的进程号" javaw"。进程号是列中最右边的数字,我在例如javaw的映像进程号中突出显示。
输入命令kill。 javaw被杀了,现在你必须能够运行该程序。
答案 14 :(得分:2)
如果上述努力都没有帮助,可以尝试另外一个选项。 您可能正在使用共享驱动器中的Eclipse(例如,H:)。如果是这样,将整个Eclipse目录移动/复制到C:并再试一次。
我的Eclipse无法打开Tomcat服务器的端口(出现上述错误),甚至无法连接到互联网。我还尝试了另一个Tomcat插件(Sysdeo),它也无法打开端口。
这些是我尝试的选项:
检查并杀死其他Tomcat实例
netstat -ano
中,检查是否有其他进程正在使用冲突的端口。在Eclipse中更改Tomcat端口
杀死java.exe和javaw
请参阅我的另一个关于Eclipse没有连接到Internet(https://stackoverflow.com/a/37246087/4212710)的答案。
答案 15 :(得分:2)
如果您在Eclipse中处于Java EE前景并尝试在调试模式下在Eclipse中启动Tomcat服务器,那么您将收到此类错误。您必须切换到Eclipse中的调试预期。我已经解决了这个问题。
答案 16 :(得分:1)
可能是因为您没有正确停止tomcat服务。为此,打开您的任务管理器,您可以看到javaw.exe
服务。先停止那项服务。现在重新启动你的tomcat它运行正常。
答案 17 :(得分:1)
如果在基于Windows 7或10的操作系统中出现上述问题,则会出现问题,因为Tomcat作为Windows服务运行。要阻止Tomcat作为Windows服务运行,请打开Windows控制面板。找到服务" Apache Tomcat"并阻止它。 另一种方法是使用cmd终止在端口8080上运行的进程。
以管理员身份打开cmd运行它。
答案 18 :(得分:1)
我检查了所有答案,但informing only to kill PID
。
如果您拥有所有人共享的终端访问权限,这将无济于事,或者您没有杀死PID的权限。
在这种情况下,您可以做的是:
Double click on server
Go to Overview and change ports in Ports
像这样:
答案 19 :(得分:1)
即使发送了关闭指令,当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保存到文件中并使用开关强制关闭,稍后 - 关闭脚本为&#39 ; nix系统已具备终止进程的能力,并且不需要使用netstat
进行协同工作。
答案 20 :(得分:1)
对我有用的更简单的修复方法是通过“服务器”选项卡从tomcat中删除当前部署的webapps。一旦我删除它们,问题就会消失。只需通过Run As>重新部署项目即可。在服务器上运行。
答案 21 :(得分:0)
在我的情况下,这是给我的错误:本地主机上的Tomcat v8.0服务器所需的端口8005已在使用中
我在apache-tomcat-8.0.39 \ conf \ server.xml中更改了8005端口,但更改未得到反映。然后我从Eclipse进行了这些更改。通过双击服务器并将端口从8005修改为8006,它可以工作。
在放入8006之前,我在Windows Shell中检查了此端口是否可用。通过执行以下命令:
netstat -a -o -n | findstr 8006
答案 22 :(得分:0)
最简单的解决方案
用于杀死多个端口的单行命令:
kill $(lsof -t -i:8005,8080,8009) // 8005, 8080 and 8009 are the ports to be freed
答案 23 :(得分:0)
我遇到了同样的问题,并且在搜索了答案后如下所示: 1.打开Monitor Tomcat,如下所示:
最后,经过许多试验和建议的解决方案,它可以与我合作。
最好的问候, Kerelos Mikhail
答案 24 :(得分:0)
以上所有内容都不适合我。
然后在Multiple contexts with the same path error running web service in Eclipse using Tomcat
之后删除重复的行,然后出现另一个错误。
The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.
跟随Can't start tomcatv9.0 in Eclipse
然后它起作用。
答案 25 :(得分:0)
不需要关闭Eclipse IDE。您的Tomcat可能已经在运行。这就是为什么您有一个错误。
从命令终端打开tomcat目录>> bin >>(在我的情况下是tomcat9)
输入命令
./ shutdown.sh
它将关闭您正在运行的tomcat
答案 26 :(得分:0)
Macbook 解决方案:
第 1 步:停止运行 Java 的服务器:
通过转至应用程序 > 实用工具 > 活动监视器打开活动监视器。或者简单地按 CMD + 空格键并开始输入活动监视器。 查找运行 Java 的进程并通过在终端中提供以下命令来终止它
kill -STOP <PID>
其中 PID 是活动监视器中显示的 Java 进程的进程 ID。执行几次,然后关闭并重新打开 Activity Monitor 以检查 Java 是否未在运行。
第 2 步:更改端口:
右键单击 Eclipse 中的服务器,然后单击“打开”。将端口号从 8080 更改为 8081 或更大的值。
这应该可以启动您的服务器。
答案 27 :(得分:0)
请参阅以下博客“如何在不必重新启动计算机的情况下杀死tomcat”
http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html
希望这将有助于将来。
答案 28 :(得分:0)
在Windows操作系统中,右键单击任务栏 - >开始任务管理器 - >进程然后检查 java.exe或javaw 是否正在运行,如果它正在运行,则单击它做结束进程然后重启你的tom cat服务器。
答案 29 :(得分:0)
你的Tomcat可能已经在运行了。这就是你有错误的原因。我之前遇到过同样的问题。我很简单地解决了这个问题:
就是这样。
答案 30 :(得分:0)
如何使用PID终止Windows服务 -
netstat -ano
taskkill /f /pid 5760
由于
答案 31 :(得分:0)
在Eclipse上,在项目“Servers”下对Tomcat配置文件夹进行原始删除。 我试着把它作为最后的希望而且有效。
答案 32 :(得分:0)
当项目中的其他人也使用与您使用的相同端口号时,就会发生这种情况! 双击tomcat服务器,将端口号更改为8585或其他任何内容。代码现在开始运行了!
答案 33 :(得分:0)
本地主机上Tomcat vX.X Server所需的几个端口(8005,8080,8009)已在使用中
要检查另一个Tomcat实例是否已在运行或其他进程是否正在使用您可以使用的端口:
Windows命令提示符中的
netstat -b -a
。这将列出正在使用的端口,并为您提供使用每个端口的可执行文件。您需要在管理员组中才能执行此操作。
你可能会得到这样的东西:
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 ,并使用这些端口终止Tomcat7.exe
或任何其他进程。
答案 34 :(得分:0)
在Windows的情况下,我遇到了新的东西...... 从/ bin文件夹停止tomcat将立即释放端口8080.释放端口大约需要5-10分钟。如果我尝试运行我的项目,再过10分钟 运行 - &GT;在服务器上运行..它允许运行。
我不确定我的理解是否正确!