首页 > 代码库 > Tomcat(8005,8080,8009)端口占用问题常见原因及解决方法
Tomcat(8005,8080,8009)端口占用问题常见原因及解决方法
Tomcat(8005,8080,8009)端口占用问题常见原因及解决方法
在企业版Eclipse中,在已经启动了Tomcat服务器后,准备运行页面或Servlet时,有时会出现这样的关于Tomcat服务器端口占用的问题:
“Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhostare already in use. The server may already be running in another process, or asystem process may be using the port. To start this server you will need tostop the other process or change the port number(s).”
错误信息的大意是说Tomcat运行所需的那三个端口被被的程序占用了。
我个人遇到过的的原因大概有以下几种:
情况一:点击运行的时候没有选中页面或Servlet窗口的标签
情况如下图:
仔细观察可知,左图其实并没有选中要运行的Servlet窗口的标签,因为标签是白色的,此时点击运行按钮的话相当于再启动一个服务器进程,端口当然是被原来那个已经启动的服务器给占了。而右图中Servlet窗口标签是蓝色的,说明已经被选中了,点击绿色的运行按钮后自然就是将这个Servlet装入已经启动的那个服务器运行,所以不会有像刚才那种端口占用的情况。
情况二:在硬盘的两个地方都有Tomcat
下面说说我碰到过的另一种情况,以前在D盘安装过一个Tomcat,后来因为有段时间不怎么用,就忽略了。再后来又开始做练习的时候,在C盘装了另一个Tomcat,并且在Eclipse中配置的时候也是默认选择了C盘的那个Tomcat。悲剧的是,因为原来在D盘的那个Tomcat我设成了开机启动,所以端口一开始就被它占着。因此,在Eclipse中启动Tomcat(C盘那个)时,就出现了端口占用的错误提示。
后来把D盘的Tomcat删除后,在Eclipse中就能正常运行页面了。
情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用
这种情况很难一下子看出来,不过反正就是要找出到底是哪个程序占用了这几个端口。可以在控制台里用“netstat -abn”命令查看正在运行的程序所占用的端口以及相关信息:
可以看到,是"javaw.exe"这个程序占用了8009和8080端口,在资源管理器中把它结束掉就可以了。
当然,还可能有其他情况导致的原因。慢慢探索