(非原创)
今天碰到一个问题,在eclipse中运行一个程序,eclipse里面的tomcat一启动就报错说端口占用,eclipse完全不能联网,maven不能下载依赖包,不能创建maven项目,不能安装插件,然后我查看了本机的端口占用情况也没有看到我要用的端口被别的应用占用,最后…….折腾了好久,终于弄好了,分享如下:
错误信息
Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).
原因:端口8005, 8080, 8009被占用了。可能是在打开Tomcat的情况下关闭了Eclipse,或是Eclipse非正常关闭,导致先前的Tomcat没有被关闭,端口占用。或是其他软件占用了tomcat的端口号。
解决方案:
1、打开任务管理器,找到java虚拟机相关的进程javaw.exe,将它结束掉[如果不行,走下一步]
2、遇到此情况,有人会告诉你重启电脑。这种方法固然可行,但成本很高,手头的工作和开的软件都要重新打开。其实,我们只要杀掉所占用端口的进程即可:
1> win + R,输入cmd回车进入dos界面
2> 输入netstat -ano|findstr 8080 查看占用8080端口的进程
3>输入taskkill /pid 10148 /f 将显示的进程号(PID,我的是10148)结束掉
4> 重启tomcat
或:也可以根据dos查的在任务管理器中结束掉进程。如果任务管理器中没有显示PID列,需要设置,查看--->选择列--->勾选“PID(进程标识符)”。[如果还不行,走下一步]
3、修改Tomcat默认端口号(不建议)
修改Tomcat的配置文件。
例如:C:/tomcat5.5.25/conf/server.xml(这是我的Tomcat存放路径)
找到
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
将port="8080"中的端口改为一个没有被占用的端口。
4、如果上述方法都不行,那么不要急,有可能是未识别的Windows socket错误,尝试下面这个办法
1,以管理员身份打开命令提示符
2,输入 netsh winsock reset
3,重启电脑就ok了
转载至链接:https://my.oschina.net/u/3717819/blog/1927125