当我试图在Eclipse中的Tomcat上运行一个简单的JSP程序时,我得到了以下错误。
Tomcat v6.0服务器在本地主机上所需的几个端口(8005、8080、8009)已经被使用。服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。
这是如何引起的,我该如何解决它?
当我试图在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)
其他回答
参考以下博客“如何在不重启计算机的情况下杀死tomcat”
http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html
希望这对将来的人们有所帮助。
Macbook的解决方案:
步骤1:停止运行Java的服务器:
打开活动监视器到应用程序>实用程序>活动监视器。或简单按CMD +空格键,并开始键入活动监视器。 寻找运行Java的进程,并在终端中输入以下命令将其终止
kill -STOP <PID>
其中PID是Activity Monitor中显示的Java进程的进程号。重复执行几次,然后关闭并重新打开Activity Monitor以检查Java是否正在运行。
第二步:修改端口:
在Eclipse中的服务器上右键单击“Open”。将端口号从8080修改为8081或更大的值。
这应该会启动您的服务器。
在windows操作系统中,右键单击任务栏——>启动任务管理器——>进程,然后检查java.exe或javaw是否正在运行,如果正在运行,然后单击它并结束进程,然后重新启动你的tom cat服务器。
有时skype将占用端口80,在这种情况下,更改skype设置并将skype设置为81或更改tomcat配置。
在我的例子中,它给了我一个错误:Tomcat v8.0服务器在localhost上所需的端口8005已经在使用中
我在apache-tomcat-8.0.39\conf\server.xml中更改了8005端口,但更改没有得到反映。然后我从eclipse做了这些改变。通过双击服务器并将端口从8005修改为8006,它就可以工作了。
在放8006之前,我在windows shell中检查这个端口是否可用。执行如下命令:
netstat -a -o -n | findstr 8006
最简单的解决方案
单行删除多个端口命令:
kill $(lsof -t -i:8005,8080,8009)
8005、8080和8009为需要释放的端口。
或者,在linux下尝试sudo kill sudo lsof -t -i:8005。