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

当我尝试在Eclipse中的Tomcat上运行一个简单的JSP程序时,出现以下错误。

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

这是如何造成的,我该如何解决?

你已经有另一个Tomcat实例在运行了。 您可以通过在浏览器中转到http://localhost:8080来确认这一点,并检查是否获取了Tomcat默认主页或Tomcat特定的404错误页面。 两者都是Tomcat运行正常的同样有效的证据; 如果没有,那么你会得到一个浏览器特定的HTTP连接超时错误消息。

你需要closures它。 转到Tomcat安装文件夹的/bin子文件夹并执行shutdown.bat (Windows)或shutdown.sh (Unix)脚本。 如果徒劳的话,closuresEclipse,然后打开任务pipe理器,并杀死所有的java和/或javaw进程。

或者,如果您出于某种原因实际上将其作为Windows服务安装(这是为了生产而开发的,并且在开发时无用),请打开服务pipe理器( 开始>运行> services.msc )并停止Tomcat服务。 如有必要,请完全卸载Windows服务。 对于开发,只需要ZIP文件就足够了。

或者,如果您的实际意图是同时运行两个Tomcat实例,则必须configuration第二个实例以侦听不同的端口。 有关更多详细信息,请参阅Tomcat文档。

 kill $(ps -aef | grep java | grep apache | awk '{print $2}') 
  • 不需要重新启动Eclipse
  • 如果你得到上述错误,只要在terminalinput这一行
  • 在Eclipse中再次启动tomcat。
  • 只适用于基于Linux的系统(Ubuntu ..等)

如果您正在Windows上运行,请在命令行提示符处尝试以下操作:

 netstat -ano 

这将显示正在使用的所有端口以及使用该端口的进程的进程ID PID#。 然后按Ctrl + Alt + Del并打开任务pipe理器,看看是哪个进程。

然后,您可以selectclosures/停止它,或者将服务器configuration为使用其他端口。 要检查新select的端口(比方说8010)是否可用,请执行以下操作:

 netstat -ano | grep 8010 

如果它不返回任何线路,那么你很好。

要更改端口,请转到“服务器”视图,打开server.xml并在那里更改端口。 我有这个入口:

 Connector port="8010" protocol="AJP/1.3" redirectPort="8443" 

如果你在Mac环境, 这是我做的。

从terminal上查找在此端口上运行的进程ID,例如8080:

 lsof -i :8080 

并杀死它:

 kill -9 <PID> 

如果Eclipse说

本地主机上的Tomcat v6.0服务器所需的几个端口(8005,8080,8009)已经被使用

这个错误是因为tomcat可能在后台运行,所以首先停止服务器..按照下面的细节。

解决scheme是:

  1. 打开“控制台”视图(窗口 – >显示视图 – >控制台)
  2. 然后停止tomcat服务器。
  3. 然后打开“服务器”视图,并启动它将工作的服务器。

谢谢!

如果你使用Eclipse,然后双击服务器,双击tomcat服务器,然后打开一个文件。 在该文件中,将HTTP端口更改为某个其他端口号并保存( Ctrl + S ),然后再次启动服务器。

我没有另一个Tomcat实例运行广告没有其他进程使用“Tomcat端口”(在我的情况下,8088端口)。 Eclipse在启动Tomcat时发送相同的消息:

….服务器可能已经在另一个进程中运行,或者系统进程可能正在使用该端口。 要启动此服务器,您需要停止另一个进程或更改端口号。

我这样解决问题:

  • 按提示进入tomcat的bin
  • 启动startup.bat
  • 启动shutdown.bat
  • 由Eclipse启动tomcat

释放已经用于在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并启动服务器,它将运行

我读完所有build议的答案后,我知道我的端口已被使用。 我在eclipse的Servers选项卡下双击Tomcat,打开概览信息,然后find端口信息。 只是改变了冲突的端口,因为我的是8009端口(在启动服务器时提到的错误)。 我已经将其更改为8008,它工作正常。 试一试,如果更改的端口不会被使用,服务器将启动。

步骤1: netstat -a -o -n ,它将打开一个networking列表,search127.0.0.1:8080这样的本地地址并记下PID(等式3624)

 C:\>netstat -a -o -n 

第二步: taskkill / F / PID 3624 。 运行这个命令来杀死这个进程。

 C:\>taskkill /F /PID 3624 

链接到post

在Windows上使用命令

净停止tomcat7

为停止已经运行的tomcat实例,并尝试在Eclipse中再次运行….它的工作原理或者你可以改变端口在服务器的XML如果你只是想在其他一些端口上运行。

简单的方法来解决你的问题:

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

1)从下面的链接下载TCPView(只有285kb)

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

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

3)右键单击java.exe (因为java进程通常使用8009,8005个端口)并selectEnd Process选项。

这会很容易地阻止另一个进程

:运行TOMCATPATH / bin / shutdown.bat时,如果它包含一些恶魔或非pipe理线程,可能不会closuresTomcat。 在这种情况下, TCPView工作正常,没有任何问题。

如果您在Eclipse中使用Java EE,并且尝试在debugging模式下在Eclipse中启动Tomcat Server,那么您将会遇到这样的错误。 您必须切换到在Eclipse中进行debugging。 我已经解决了我的问题。

有时候,如果端口在尝试shutdown.bat后仍然没有被释放,那么@BalusCbuild议你可以终止javaw进程。 请执行以下步骤:

  1. 点击开始菜单并打开“Windows PowerShell”
  2. 在打开之前右键单击并select“以pipe理员身份运行”
  3. input命令ps。 您可能会看到如下图像: Powershell显示当前正在运行的程序

  4. 查看进程“javaw”的进程号。进程号是列中最右边的数字,例如,我在javaw的图像进程号中突出显示了进程号。

  5. input命令kill。 javaw被杀害,现在你必须能够运行程序。

如果上述任何一项工作都没有帮助,那么还有一个select。 您可能正在使用来自共享驱动器的Eclipse(例如H 🙂 。 如果是这样,将整个Eclipse目录移动/复制到C:然后再试一次。

我的Eclipse无法打开端口的Tomcat服务器(与上述错误),甚至连接到互联网。 我也尝试了另一个Tomcat插件(Sysdeo),它也无法打开端口。

这些是我尝试的选项:

检查并终止其他Tomcat实例

  • 在命令提示符下, netstat -ano并检查是否有其他进程正在使用冲突的端口。
  • findPID并杀死它
  • 尝试再次启动服务器。

在Eclipse中更改Tomcat端口

  • 在Eclipse Server选项卡中,双击Tomcat实例。 这将打开configuration选项卡。
  • 在端口下,更改端口号。 (例如,18080)。

杀死java.exe和javaw

看到我的Eclipse的其他答案没有连接到Internet( https://stackoverflow.com/a/372​​46087/4212710 )。

对于Windows用户:

使用CTRL + SHIFT + ESC组合键直接转到任务pipe理器。

通过右键单击并select“结束任务”来杀死“java.exe”进程。

在Eclipse上,在项目“服务器”下对原来的Tomcatconfiguration文件夹进行删除。 我试图把它作为最后的希望,它的工作。

在Windows的情况下,我经历了一个新的东西…停止从/ bin文件夹的tomcat将立即不释放端口8080.它需要约5-10分钟释放端口。 10分钟后,如果我尝试运行我的项目运行 – >在服务器上运行..它允许运行。

我不确定我的理解是否正确!

参考以下博客“如何杀死tomcat而不必重新启动计算机”

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

希望这将有助于未来的人。

对我来说更简单的修复方法是通过“服务器”选项卡从tomcat中删除当前部署的Web应用程序。 一旦我删除它们,问题就消失了。 通过继续运行>在服务器上运行,重新部署您的项目。

当项目中的其他人也使用相同的端口号时,就会发生这种情况! 双击tomcat服务器,将端口号更改为任何8585或任何。 代码现在开始运行!

当Apache Tomcat无法正常终止时,即使发送了closures指令,也会出现问题。 在我的情况下,使用Tomcat 8,这发生在烦人的规律性。 幸运的是,您可以使用Windows PowerShell和netstat命令来创build一个简单的脚本来终止进程。

以下PowerShell脚本将parsingnetstat的输出,以查找正在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将Tomcatconfiguration为使用其他端口或IP,请相应地在脚本的第四行上编辑正则expression式。

最后,我要指出的是,Linux上的情况会更好,因为您可以指示Tomcat在启动时将其PID保存到文件中,并使用开关强制closures,稍后closures脚本“nix系统已经具有杀死进程的能力,并且不需要使用netstat进行侦查。

如何杀死一个Windows服务使用PID –

  1. 打开命令提示符并inputnetstat -ano
  2. find正在使用的端口的PID,在这种情况下,它将是8080,8005,8009。 假设这些端口的PID是5760。
  3. 现在键入taskkill /f /pid 5760
  4. 它将closuresPID和端口将可用。 现在,您可以像平常一样通过Windows服务或eclipse本身启动tomcat。

谢谢

杀死一个停止或启动的Windows服务

本地主机上的Tomcat vX.X Server所需的几个端口(8005,8080,8009)已经在使用中

要检查另一个已经运行的Tomcat实例是否正在使用可以使用的端口:

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

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

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]

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

你的Tomcat可能已经在运行了。 这就是为什么你有一个错误。 我以前也遇到同样的问题 我很简单地解决它:

  1. 重启你的电脑
  2. 打开Eclipse
  3. 运行你的Tomcat

就这样。

在Windows操作系统做右键单击任务栏 – >启动任务pipe理器 – >过程,然后检查java.exe或javaw正在运行,如果它正在运行,然后点击它,并做结束的过程,然后重新启动汤姆猫服务器。

  1. 有时候Skype会占用端口80,在这种情况下更改Skype的设置,并把81为Skype或更改Tomcat的configuration。