Windows下Tomcat报端口被占用问题
平时都好好的tomcat,今天突然报出来Several ports (8005, 8080, 8009) required by Tomcat v7.0 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).
这个,有以下几种解决方案:
1、端口被占用,可以用cmd(window+R)
第一步:输入netstat -ano
也可以输入netstat -aon|findstr "端口号"
第二步:tasklist|findstr "查询出的 listening",刚刚查询的是7912
第三步:taskkill /f /t /im 查询出占用程序名称
可以看到8080的进程被kill了。
2、Eclipse非正常关闭,可以打开任务管理器,结束“javaw.exe”这个进程。
3、也可以修改tomcat的端口号:tomcat目录/conf下server.xml
用文本格式打开,将其中的8080端口修改成8888或者其他
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
4、若以上方法都不好使,那么恭喜你,跟我一样。找到tomcat目录/bin下,运行startup.bat开启tomcat(linux运行 startup.sh 也可先运行下shutdown.bat关闭tomcat),若出现:
Unrecognized Windows Sockets error: 10106:create这个错误
注意eclipse的tomcat里不能为空,需添加项目才有此错误
解决这个问题:
第一步:以管理员身份打开命令提示符
第二步:输入 netsh winsock reset
第三步:重启电脑就可以了
详细:用管理员运行cmd,则是开始-附件-命令提示符-右键-以管理员身份运行
若出现拒绝访问,则关闭系统所有杀毒软件,再输入netsh winsock reset
成功则是:
“netsh winsock reset”指令,会把底层传输协议无关的高层数据传输编程接口恢复到默认状态。
1、netsh winsock reset命令,是计算机的一条指令,作用是重置 Winsock 目录。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。
2、Winsock是Windows网络编程接口,reset是对Winsock的重置操作。
3、netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等。