当我试图在Eclipse中的Tomcat上运行一个简单的JSP程序时,我得到了以下错误。
Tomcat v6.0服务器在本地主机上所需的几个端口(8005、8080、8009)已经被使用。服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。
这是如何引起的,我该如何解决它?
当我试图在Eclipse中的Tomcat上运行一个简单的JSP程序时,我得到了以下错误。
Tomcat v6.0服务器在本地主机上所需的几个端口(8005、8080、8009)已经被使用。服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。
这是如何引起的,我该如何解决它?
当前回答
这可能是因为您没有正确地停止tomcat服务。为此,打开你的任务管理器,你可以看到一个javaw.exe服务。首先停止服务。现在重新启动tomcat,它可以正常工作。
其他回答
最简单的解决方案
单行删除多个端口命令:
kill $(lsof -t -i:8005,8080,8009)
8005、8080和8009为需要释放的端口。
或者,在linux下尝试sudo kill sudo lsof -t -i:8005。
如果您在Eclipse中的Java EE前景中,并试图以调试模式在Eclipse中启动Tomcat服务器,那么您将得到这样的错误。您必须在Eclipse中切换到预调试。我就这样解决了我的问题。
windows用户:
使用CTRL+SHIFT+ESC组合键直接进入任务管理器。
通过右键单击并选择“End Task”来终止“java.exe”进程。
当项目中的其他人也使用与您相同的端口号时,就会发生这种情况! 双击tomcat服务器,将端口号更改为8585或其他。代码现在将开始运行!
如果你在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)