java.net.BindException: Address already in use: JVM_Bind:80 异常的解决办法

今天遇见了这个端口被占用问题 然后各种百度 先是说

用命令 netstat -a -n -o 最后一个选项表示连接所在进程id. 找到8080端口的PID然后打开任务管理器, 切换到进程选项卡, 在菜单栏选择查看->选择列, 选择PID. 在列表中找到PID对应的进程就可以了然后发现占用端口的进程的PID为4 可无奈如何关闭都关闭不了这个进程 于是又百度了pid为4的进程 果然找到同样问题 解决办法是把world wide web publishing service这个服务关闭就没事了。pid 4是system保留进程但至于这个进程是干嘛用的还未知 不过再启动的时候已经可以了 算是解决了这个问题吧

咱还是闲话少说,直接切入正题。 
起因: 
一直用Tomcat,但是前几天突然报错: 
          java.net.BindException: Address already in use: JVM_Bind:80 
第一反应就是80端口被占用了。更改IIS端口,不工作! 停掉IIS,不工作! 停掉IIS Admin还是不工作! 
见了鬼了,去网上搜一把,都说是IIS或者迅雷的问题。也有说是IE的问题(也不能说他错,不过真TMD能扯淡)。我机器上没有迅雷,于是决定自己动手了... 

解决方案: 
1.先用命令 netstat -ano 看一下各个端口占用和进程PID(80端口是被3296占用) 。 
2.然后在任务管理器里,查看进程。(注意:默认情况下,进程的PID是不显示的,你在菜单的查看->选择列里可以选上PID来显示) 

3、后面大家当然知道该怎么做了。当然是大刀阔斧的,把这个进程关闭掉,然后一切正常!!

 

最后提醒一下,使用netstat 命令查看端口号时,查看的是Local Address 列的端口号。