Tomcat服务器在localhost上需要的几个端口(8005,8080,8009)已在使用中

ell*_*lle 253 java eclipse tomcat

当我尝试在Eclipse中运行Tomcat上的简单JSP程序时,我收到以下错误.

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

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

Bal*_*usC 465

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

你需要关闭它.转到/binTomcat安装文件夹的子文件夹并执行shutdown.bat(Windows)或shutdown.sh(Unix)脚本.如果徒劳无功,请关闭Eclipse,然后打开任务管理器并终止所有java和/或javaw进程.

或者,如果您出于某种原因实际将其安装为Windows服务(这意味着生产并且在您刚开发时无用),请打开服务管理器(" 开始">"运行">"services.msc")并停止Tomcat服务.如有必要,请完全卸载Windows服务.对于开发,只需ZIP文件即可.

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

  • "杀死所有java和/或javaw进程"对我有用,谢谢. (6认同)
  • 你好BalusC,我喜欢你!我的bin文件夹中没有`shutdown.bat`.Tomcat作为服务安装而不是zip.停止服务中的tomcat服务修复了这个问题.谢谢.Chenqui. (2认同)
  • 打开“系统监视器”或“任务管理器”并杀死使用大约400 MB或更多RAM的Java进程也将解决该问题。它在不知不觉中保留了该过程。 (2认同)

小智 54

kill $(ps -aef | grep java | grep apache | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
  • 无需重启Eclipse
  • 如果您收到上述错误,只需在终端输入此行即可
  • 再次在Eclipse中启动tomcat.
  • 仅适用于基于Linux的系统(Ubuntu ..etc)

  • 这更好`kill $(ps -aef | grep java | grep apache | awk'{print $ 2}') (6认同)

小智 28

如果您在Windows上运行,请在命令行提示符下尝试:

netstat -ano
Run Code Online (Sandbox Code Playgroud)

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

然后,您可以选择关闭/停止它或将服务器配置为使用其他端口.要检查新选择的端口(例如8010)是否可用,请执行以下操作:

netstat -ano | grep 8010
Run Code Online (Sandbox Code Playgroud)

如果它没有返回任何行,那么你没事.

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

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"
Run Code Online (Sandbox Code Playgroud)

  • `findstr` 对于那些没有 grep 的人。 (2认同)

Tim*_*ess 22

如果你在mac环境中,就是我所做的.

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

lsof -i :8080
Run Code Online (Sandbox Code Playgroud)

杀了它:

kill -9 <PID>
Run Code Online (Sandbox Code Playgroud)


小智 19

自由端口的步骤已经用于在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,它将运行

  • 祝福你亲爱的先生。现在我相信上帝。 (2认同)

小智 14

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


小智 12

如果Eclipse说

Tomcat v6.0 Server在localhost上所需的几个端口(8005,8080,8009)已在使用中

出现此错误是因为tomcat可能在后台运行,因此首先停止该服务器.请按照以下详细信息进行操作.

解决方案是:

  1. 打开"控制台"视图(window-> show view-> Console)
  2. 然后停止tomcat服务器.
  3. 然后打开"服务器"视图并启动它将工作的服务器.

谢谢!


小智 10

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

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

我用这种方式解决了这个问题:

  • 通过提示转到tomcat的bin
  • 启动startup.bat
  • 启动shutdown.bat
  • 通过Eclipse启动tomcat


小智 6

在阅读了所有建议的答案之后我做了什么,因为我知道我的端口已经被使用了.我在eclipse的Servers选项卡下双击了Tomcat,它打开了概述信息,然后找到了端口信息.刚刚更改了冲突的端口,因为我的是8009端口(在启动服务器时提到错误).我已将其更改为8008并且工作正常.如果更改的端口未使用,请尝试启动服务器.


San*_*waj 6

步骤1: netstat -a -o -n它将显示网络列表,搜索本地地址,如127.0.0.1:8080并记下PID(eq 3624)

C:\>netstat -a -o -n
Run Code Online (Sandbox Code Playgroud)

第2步: taskkill/F/PID 3624.运行此命令以终止该进程.

C:\>taskkill /F /PID 3624
Run Code Online (Sandbox Code Playgroud)

链接到帖子


Gau*_*nga 6

在 Windows 上使用命令停止已经运行的 tomcat 实例并尝试在 eclipse 中再次运行它,它可能会工作。

net stop tomcat7 
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想在其他端口上运行,则可以更改服务器 XML 中的端口。