报错:java.net.bindexception: address already in use: jvm_bind:8080

39 篇文章 0 订阅
原因:8080端口被占用 (我遇到的是8005的Tomcat被占用啊)

严重: StandardServer.await: create[localhost:8005]: 
java.net.BindException: Address already in use: JVM_Bind
 at java.net.PlainSocketImpl.socketBind(Native Method)
 at java.net.PlainSocketImpl.bind(Unknown Source)
 at java.net.ServerSocket.bind(Unknown Source)
 at java.net.ServerSocket.<init>(Unknown Source)
 at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
 at org.apache.catalina.startup.Catalina.await(Catalina.java:757)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:703)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
 
这说明80端口(该端口是Tomcat的监听端口)已经被其他程序占用,先用命令提示符 " netstat -ano " 命令显示端口状态,再在结果中找到端口,然后根据其 PID 在输入 “ tasklist ” 命令显示中查找其对应程序,就可知道其程序名,进而查明程序的来源,采取适当的措施。 

方法可以采用如下: 

用netstat -ano 命令结果: 
Proto Local Address          Foreign Address        State           PID 
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       2544 
TCP    0.0.0.0:100            0.0.0.0:0              LISTENING       2544 
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1404 
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4 
TCP    0.0.0.0:1110           0.0.0.0:0              LISTENING       228 
TCP    127.0.0.1:1025         0.0.0.0:0              LISTENING       1052 
TCP    127.0.0.1:1159         127.0.0.1:1110         CLOSE_WAIT      2992 
TCP    127.0.0.1:1297         127.0.0.1:1110         CLOSE_WAIT      2992 
TCP    127.0.0.1:1324         127.0.0.1:1110         CLOSE_WAIT      2992 
可见80端口被PID 为2544的进程占用了。 

用tasklist 命令: 
图像名                       PID 会话名           会话#       内存使用 
========================= ====== ================ ======== ============ 
System Idle Process            0 Console                 0         28 K 
System                         4 Console                 0        264 K 
WebThunder.exe              2544 Console                 0     12,120 K 
java.exe                    2884 Console                 0      6,296 K 
tasklist.exe                3464 Console                 0      4,372 K 
可见2544是WebThunder.exe进程。将其关闭。重启TOMCAT。OK! 

我用这种方法查得是一个python.exe的进程占用了端口继而查到原来是plone程序占用了8080端口。于是关闭即可。
 
1,独立运行的Tomcat没有关闭.自安装的tomcat程序设置开机自动运行,或者在之前运行过,先关闭myecplipse或jbuilder,在任务管理器中找到Tomcat的进程,将其kill掉,即可.有时候Tomcat非法关闭时,在进程中,仍然存在,仍然占用8080端口.所以只要将其进程杀掉.就可以解决. 


2,安装了其他的软件占用了Tomcat的端口.用可以查看端口的工具查看一下,或者,直接改掉tomcat的默认端口.即可
说实话,这篇文章写得好,就是没说怎么把进程结束掉,那进程在进程管理器里没有啊。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值