Java.NET.BindException: Address already in use: JVM_Bind

2016-12-24 10:25:59来源:oschina作者:EthanMa人点击

第七城市

Java.NET.BindException: Address already in use: JVM_Bind


80端口一般被当做网页服务器的默认端口,使用本机搭建服务器环境的时候,都会默认使用80端口来作为网页访问端,但是有的时候80端口会被其他的不明身份的程序占用,导致 Apache 启动失败,修改 Apache 的默认端口后访问本机地址又非常麻烦。下面介绍一下如果80端口被占用后应该如何处理。


修改 Apache 的默认端口(强迫症不要用)

修改 Apache 端口的方法是最妥协的方法了,后果是当你开启 Apache 服务器的时候,访问的本机地址将会附带端口号,比如http://localhost:8888。


修改方式是直接修改 httpd.conf 文件,文件的位置在 Apache 安装目录下的 conf 文件夹下,直接用记事本打开,找到 Listen 80 ,将80修改为其他未被占用的端口。



注:httpd.conf 文件中,以#开头的行是关闭的,不生效的,不以#开头的行是启用的。



查找80端口被谁占用的方法

进入命令提示行(开始运行输入 CMD),输入命令 netstat –ano ,就可以看到本机所有端口的使用情况,一般80端口在第一行,截图显示,端口已经被占用,PID 中写明 LISTENING 4。



PID=4 的程序是哪一个呢?接着在命令提示和下输入指令 tasklist ,列出所有当前运行的进程,


发现 PID=4 的进程,居然是 system 。



取消 system 进程对80端口的占用

其实本身我用的 Apache 好好的,只是突然不能启动了,回想在此期间新安装的软件,面子这么大,能让系统占用80端口的,也只能有 SQL Server 2008 了。经过查询,发现占用80端口的确是 SQL Server 2008 里面的组件——SQL Server Reporting Services (MSSQLSERVER)。是 SQL Server 的日志系统,就是他好端端的突然占用了80端口,而且对于普通人来讲,这个组件的作用没啥用,关掉也是节约资源。


关闭方法很简单,在运行框中输入 services.msc ,进入服务窗口。或者直接在开始菜单里面的搜索框中输入“服务”即可打开。然后找到 SQL Server Reporting Services (MSSQLSERVER) 这个服务,然后停止,被占用的80端口就被释放出来了。你也可以设置它的启动方式为“禁用”。



看清楚了,就是它。


另外的一个被占用的原因

除此之外,我还在网上找到了另外80端口被 system 占用的原因,就是微软家的 IIS 服务,关闭方式可以去控制面板去关闭即可。

总结原因顺便吐槽,最近在学习 java 操作 SQL Server 数据库,所以请了个大爷进电脑,曾经也因为一些原因安装过 SQL Server ,两次的安装体验,总感觉微软家的产品就是 VIP 待遇,安装就要半个小时,卸载也要半个小,时不服不行啊,谁让 SQL Server 安全高效呢。接下来加油学习吧,骚年们。


转载来自:http://www.yelook.com/1450.html

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台