如何在Windows下查看JAVA端口占用明细

from:http://qindongliang.iteye.com/blog/2157425

在linux想要查看某个端口的占用情况,我们可以使用ps -ef | grep 端口号来查看某个进程的端口占用情况,那么在windows上,如何查看呢? 

起因:散仙在win7上启动jetty时,发生端口占用,日志异常如下: 
Java代码   收藏代码
  1. main{StandardDirectoryReader(segments_1:1:nrt)}  
  2. INFO  - 2014-11-18 11:11:29.780; org.apache.solr.core.CoreContainer; registering core: collection1  
  3. INFO  - 2014-11-18 11:11:29.786; org.apache.solr.servlet.SolrDispatchFilter; user.dir=D:\solr4.7-jetty  
  4. INFO  - 2014-11-18 11:11:29.788; org.apache.solr.servlet.SolrDispatchFilter; SolrDispatchFilter.init() done  
  5. INFO  - 2014-11-18 11:11:29.822; org.apache.solr.core.SolrCore; [collection1] webapp=null path=null params={event=firstSearcher&q=static+firstSearcher+warming+in+solrconfig.xml&distrib=false} hits=0 status=0 QTime=37   
  6. WARN  - 2014-11-18 11:11:29.824; org.eclipse.jetty.util.component.AbstractLifeCycle; FAILED SocketConnector@0.0.0.0:8983: java.net.BindException: Address already in use: JVM_Bind  
  7. java.net.BindException: Address already in use: JVM_Bind  
  8.     at java.net.DualStackPlainSocketImpl.bind0(Native Method)  
  9.     at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96)  
  10.     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)  
  11.     at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175)  
  12.     at java.net.ServerSocket.bind(ServerSocket.java:376)  
  13.     at java.net.ServerSocket.(ServerSocket.java:237)  
  14.     at java.net.ServerSocket.(ServerSocket.java:181)  
  15.     at org.eclipse.jetty.server.bio.SocketConnector.newServerSocket(SocketConnector.java:96)  
  16.     at org.eclipse.jetty.server.bio.SocketConnector.open(SocketConnector.java:85)  
  17.     at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)  
  18.     at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)  
  19.     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)  
  20.     at org.eclipse.jetty.server.Server.doStart(Server.java:291)  
  21.     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)  
  22.     at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1259)  
  23.     at java.security.AccessController.doPrivileged(Native Method)  
  24.     at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1182)  
  25.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  26.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
  27.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  28.     at java.lang.reflect.Method.invoke(Method.java:601)  
  29.     at org.eclipse.jetty.start.Main.invokeMain(Main.java:473)  
  30.     at org.eclipse.jetty.start.Main.start(Main.java:615)  
  31.     at org.eclipse.jetty.start.Main.main(Main.java:96)  
  32. INFO  - 2014-11-18 11:11:29.825; org.apache.solr.core.QuerySenderListener; QuerySenderListener done.  
  33. WARN  - 2014-11-18 11:11:29.850; org.eclipse.jetty.util.component.AbstractLifeCycle; FAILED org.eclipse.jetty.server.Server@66b6d1a8: java.net.BindException: Address already in use: JVM_Bind  
  34. java.net.BindException: Address already in use: JVM_Bind  
  35.     at java.net.DualStackPlainSocketImpl.bind0(Native Method)  
  36.     at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:96)  
  37.     at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)  
  38.     at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:175)  
  39.     at java.net.ServerSocket.bind(ServerSocket.java:376)  
  40.     at java.net.ServerSocket.(ServerSocket.java:237)  
  41.     at java.net.ServerSocket.(ServerSocket.java:181)  
  42.     at org.eclipse.jetty.server.bio.SocketConnector.newServerSocket(SocketConnector.java:96)  
  43.     at org.eclipse.jetty.server.bio.SocketConnector.open(SocketConnector.java:85)  
  44.     at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316)  
  45.     at org.eclipse.jetty.server.bio.SocketConnector.doStart(SocketConnector.java:156)  
  46.     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)  
  47.     at org.eclipse.jetty.server.Server.doStart(Server.java:291)  
  48.     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)  
  49.     at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1259)  
  50.     at java.security.AccessController.doPrivileged(Native Method)  
  51.     at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1182)  
  52.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  



从异常中,我们可以轻易看出是8983端口,被占用了,然后再次启动时,出现叠加端口,就会报上述异常,那么如何定位,查找,占用的端口号呢? 



1,打开windows上的cmd窗口 
2,使用netstat -aon | findstr "8983"查看端口所在进程 
3,然后使用tasklist | findstr "进程id" 找出具体的程序所在主服务 
4,最后使用taskkill /f /t /im 进程名称 杀死进程 

截图如下: 


如何在Windows下查看JAVA端口占用明细_第1张图片



定位到异常所在服务后,查看有关服务,是否冲突,然后关掉即可(关掉之前,确认是否真的可以停掉,以免影响一些其他的服务,正常运行)! 

  • 如何在Windows下查看JAVA端口占用明细_第2张图片
  • 大小: 131.2 KB

你可能感兴趣的:(如何在Windows下查看JAVA端口占用明细)