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

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

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


当前回答

如果你在mac环境下,这是我所做的。

从终端找到运行在该端口上的进程id,例如8080:

lsof -i :8080

杀死它:

kill -9 <PID>  

例子:

结果如下:

MacSys:bin krunal.$ lsof -i :8080

COMMAND   PID     USER   FD   TYPE     DEVICE  SIZE/OFF   NODE  NAME
java     21347   krunal  52u  IPv6      XXX      0t0      TCP  *:http-xxx (LISTEN)

杀死它:(kill -9 21347)

其他回答

如果Eclipse说

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

出现此错误是因为tomcat可能正在后台运行,所以首先停止该服务器。

解决方案是:

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

谢谢!

kill $(ps -aef | grep java | grep apache | awk '{print $2}')

无需重新启动Eclipse 如果您得到上述错误,只需在终端中输入这一行 再次在Eclipse中启动tomcat。 仅适用于Linux系统(Ubuntu ..等)

步骤释放已用于在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,它将运行

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

net stop tomcat7 

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

如果你在windows上运行,在命令行提示符中试试这个:

netstat -ano

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

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

netstat -ano | grep 8010

如果它没有返回任何行,那么就没问题。

要更改端口,请转到Server视图,打开Server .xml并在那里更改端口。 我的记录是这样的:

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