启动Tomcat时报如下错误:
严重: Error initializing endpoint
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.(ServerSocket.java:185)
at java.net.ServerSocket.(ServerSocket.java:141)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1049)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2012-12-12 10:47:40 org.apache.catalina.core.StandardService initialize
严重: Failed to initialize connector [Connector[HTTP/1.1-80]]
LifecycleException: Protocol handler initialization failed: java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
at org.apache.catalina.connector.Connector.initialize(Connector.java:1051)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2012-12-12 10:47:40 org.apache.catalina.startup.Catalina load
出现这样的错误原因很明了:端口被占用。
端口被占用的话有2个方法:
1,修改Tomcat的端口:
tomcat目录下,conf目录下server.xml文件:
找到:
connectionTimeout="20000"
redirectPort="8443" />
把port改成别的就可以。
2,把占用端口的进程找到,并关闭它。
cmd进入命令行,找出所有占用的端口,根据结果中的pid找到改程序,然后关闭它。
操作如下:
C:\Users\lushuaiyin>netstat -ano
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 2940
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 816
TCP 0.0.0.0:200 0.0.0.0:0 LISTENING 2940
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING 2316
TCP 0.0.0.0:5560 0.0.0.0:0 LISTENING 2480
TCP 0.0.0.0:5580 0.0.0.0:0 LISTENING 2480
TCP 0.0.0.0:22105 0.0.0.0:0 LISTENING 1460
TCP 0.0.0.0:49152 0.0.0.0:0 LISTENING 472
TCP 0.0.0.0:49153 0.0.0.0:0 LISTENING 880
TCP 0.0.0.0:49155 0.0.0.0:0 LISTENING 976
TCP 0.0.0.0:49157 0.0.0.0:0 LISTENING 552
TCP 0.0.0.0:49158 0.0.0.0:0 LISTENING 2316
TCP 0.0.0.0:49159 0.0.0.0:0 LISTENING 2224
TCP 0.0.0.0:49160 0.0.0.0:0 LISTENING 2224
TCP 0.0.0.0:49188 0.0.0.0:0 LISTENING 528
TCP 0.0.0.0:49193 0.0.0.0:0 LISTENING 4060
TCP 0.0.0.0:60000 0.0.0.0:0 LISTENING 2604
TCP 10.24.8.210:139 0.0.0.0:0 LISTENING 4
TCP 10.24.8.210:50682 58.83.159.11:80 CLOSE_WAIT 6572
TCP 10.24.8.210:50683 58.83.159.11:80 CLOSE_WAIT 6572
TCP 10.24.8.210:50870 58.83.159.12:80 CLOSE_WAIT 3108
TCP 10.24.8.210:50871 58.83.159.12:80 CLOSE_WAIT 3108
TCP 10.24.8.210:50988 58.83.159.12:80 CLOSE_WAIT 5020
TCP 10.24.8.210:50989 58.83.159.12:80 CLOSE_WAIT 5020
TCP 10.24.8.210:50998 125.39.229.82:80 CLOSE_WAIT 5020
TCP 10.24.8.210:51042 125.39.229.84:80 CLOSE_WAIT 5020
TCP 10.24.8.210:51971 119.75.219.45:80 CLOSE_WAIT 1176
TCP 10.24.8.210:51986 180.149.131.33:80 CLOSE_WAIT 1176
TCP 10.24.8.210:52166 119.147.12.67:80 CLOSE_WAIT 3108
TCP 10.24.8.210:52167 119.147.12.67:80 CLOSE_WAIT 3108
TCP 10.24.8.210:52172 10.23.134.10:288 TIME_WAIT 0
TCP 10.24.8.210:52174 10.23.134.10:288 TIME_WAIT 0
TCP 10.24.8.210:52183 10.23.134.10:288 TIME_WAIT 0
TCP 10.24.8.210:52191 10.23.134.10:288 TIME_WAIT 0
TCP 10.24.8.210:52192 10.23.134.10:288 TIME_WAIT 0
TCP 10.24.8.210:52198 119.147.193.92:80 ESTABLISHED 3108
TCP 10.24.8.210:52199 119.147.193.92:80 ESTABLISHED 3108
TCP 10.24.8.210:52201 10.23.134.10:288 TIME_WAIT 0
TCP 127.0.0.1:61100 0.0.0.0:0 LISTENING 2224
TCP [::]:135 [::]:0 LISTENING 816
TCP [::]:445 [::]:0 LISTENING 4
TCP [::]:49152 [::]:0 LISTENING 472
TCP [::]:49153 [::]:0 LISTENING 880
TCP [::]:49155 [::]:0 LISTENING 976
TCP [::]:49157 [::]:0 LISTENING 552
TCP [::]:49188 [::]:0 LISTENING 528
TCP [::]:49193 [::]:0 LISTENING 4060
TCP [::]:60000 [::]:0 LISTENING 2604
UDP 0.0.0.0:500 *:* 976
UDP 0.0.0.0:1004 *:* 2940
UDP 0.0.0.0:3600 *:* 2784
UDP 0.0.0.0:4000 *:* 544
UDP 0.0.0.0:4001 *:* 544
UDP 0.0.0.0:4002 *:* 6512
UDP 0.0.0.0:4003 *:* 6852
UDP 0.0.0.0:4004 *:* 6852
UDP 0.0.0.0:4005 *:* 6512
UDP 0.0.0.0:4006 *:* 544
UDP 0.0.0.0:4007 *:* 6852
UDP 0.0.0.0:4008 *:* 6512
UDP 0.0.0.0:4500 *:* 976
UDP 0.0.0.0:5355 *:* 1356
UDP 0.0.0.0:15000 *:* 2940
UDP 0.0.0.0:15005 *:* 2940
UDP 0.0.0.0:19635 *:* 2940
UDP 0.0.0.0:22105 *:* 1460
UDP 0.0.0.0:22106 *:* 1460
UDP 0.0.0.0:49774 *:* 6512
UDP 0.0.0.0:50526 *:* 1176
UDP 0.0.0.0:51893 *:* 6572
UDP 0.0.0.0:52625 *:* 6512
UDP 0.0.0.0:53049 *:* 3148
UDP 0.0.0.0:54339 *:* 2784
UDP 0.0.0.0:54520 *:* 6512
UDP 0.0.0.0:54953 *:* 3508
UDP 0.0.0.0:56737 *:* 6512
UDP 0.0.0.0:57100 *:* 1176
UDP 0.0.0.0:57271 *:* 544
UDP 0.0.0.0:57272 *:* 544
UDP 0.0.0.0:57389 *:* 3148
UDP 0.0.0.0:57876 *:* 3108
UDP 0.0.0.0:58766 *:* 6852
UDP 0.0.0.0:58767 *:* 6852
UDP 0.0.0.0:58768 *:* 6852
UDP 0.0.0.0:58831 *:* 6852
UDP 0.0.0.0:59960 *:* 2940
UDP 0.0.0.0:62541 *:* 5852
UDP 0.0.0.0:62855 *:* 6512
UDP 0.0.0.0:63065 *:* 6512
UDP 0.0.0.0:63421 *:* 6512
UDP 0.0.0.0:63945 *:* 8392
UDP 0.0.0.0:64374 *:* 6512
UDP 0.0.0.0:64503 *:* 2940
UDP 0.0.0.0:65186 *:* 5020
UDP 0.0.0.0:65282 *:* 2940
UDP 0.0.0.0:65330 *:* 544
UDP 0.0.0.0:65430 *:* 6084
UDP 10.24.8.210:137 *:* 4
UDP 10.24.8.210:138 *:* 4
UDP 10.24.8.210:1900 *:* 2004
UDP 10.24.8.210:57879 *:* 2004
UDP 127.0.0.1:1900 *:* 2004
UDP 127.0.0.1:49524 *:* 6504
UDP 127.0.0.1:50500 *:* 3108
UDP 127.0.0.1:52135 *:* 3508
UDP 127.0.0.1:53796 *:* 1356
UDP 127.0.0.1:54612 *:* 8392
UDP 127.0.0.1:56110 *:* 6512
UDP 127.0.0.1:56394 *:* 544
UDP 127.0.0.1:57880 *:* 2004
UDP 127.0.0.1:58219 *:* 3000
UDP 127.0.0.1:58627 *:* 2964
UDP 127.0.0.1:60669 *:* 2940
UDP 127.0.0.1:61955 *:* 5020
UDP 127.0.0.1:62373 *:* 6572
UDP 127.0.0.1:62542 *:* 1176
UDP 127.0.0.1:62600 *:* 5144
UDP 127.0.0.1:64251 *:* 6852
UDP 127.0.0.1:64502 *:* 2784
UDP [::]:500 *:* 976
UDP [::]:4500 *:* 976
UDP [::]:5355 *:* 1356
UDP [::1]:1900 *:* 2004
UDP [::1]:57878 *:* 2004
UDP [fe80::7018:51c1:add8:f344%11]:546 *:*
880
UDP [fe80::7018:51c1:add8:f344%11]:1900 *:*
2004
UDP [fe80::7018:51c1:add8:f344%11]:57877 *:*
2004
C:\Users\lushuaiyin>tasklist|findstr "2940"
WebThunder.exe 2940 Console 1 20,368 K
C:\Users\lushuaiyin>
例如:我的tomcat使用80端口,使用第一个命令netstat -ano 列出所有端口的情况,找到IP后面是80的那一行。
它的PID是2940,再使用命令 tasklist|findstr “2940”
找到此程序是WebThunder.exe。原来是Web迅雷。
我们可以在任务管理器找到它,然后关闭。如果是个进程,在应用程序里找不到的话,就在进程里找,如果名字不太好找,就根据PID来找。
(在进程选项卡,用查看–选择列,把PID勾选,这样就出现PID了,把这个进程关闭)
——————————————————————————————————————————————–
说到这里我们对NETSTAT这个cmd命令就要好好研究一下。
进入cmd,输入netstat -haha,后面是我乱输入的。
因为没有后面那个参数,所以就会有帮助信息输出:
C:\Users\lushuaiyin>netstat -haha
显示协议统计和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。
在某些情况下,已知可执行程序承载多个独立的
组件,这些情况下,显示创建连接或侦听端口时涉
及的组件序列。此情况下,可执行程序的名称
位于底部[]中,它调用的组件位于顶部,直至达
到 TCP/IP。注意,此选项可能很耗时,并且在您没有
足够权限时可能失败。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列任
何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选
项一起用来显示每个协议的统计,proto 可以是下列任
何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP
或 UDPv6。
-r 显示路由表。
-s 显示每个协议的统计。默认情况下,显示
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6
的统计;-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
interval 重新显示选定的统计,各个显示间暂停的间隔秒数。
按 CTRL+C 停止重新显示统计。如果省略,则 netstat
将打印当前的配置信息一次。
C:\Users\lushuaiyin>
根据帮助信息,我们对这个命令的功能和用法一目了然!怎么使用,自己试试看效果要比我说的好得多,有兴趣的话,试试看吧
还有另外一个命令tasklist
C:\Users\lushuaiyin>tasklist ddd
错误: 无效参数/选项 - 'ddd'。
键入 "TASKLIST /?" 以了解用法。
C:\Users\lushuaiyin>tasklist /?
TASKLIST [/S system [/U username [/P [password]]]]
[/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]
描述:
该工具显示在本地或远程机器上当前运行的进程列表。
参数列表:
/S system 指定连接到的远程系统。
/U [domain\]user 指定应该在哪个用户上下文执行这个命令。
/P [password] 为提供的用户上下文指定密码。如果省略,则
提示输入。
/M [module] 列出当前使用所给 exe/dll 名称的所有任务。
如果没有指定模块名称,显示所有加载的模块。
/SVC 显示每个进程中主持的服务。
/V 显示详述任务信息。
/FI filter 显示一系列符合筛选器指定的标准的任务。
/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。
/NH 指定列标题不应该在输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。
/? 显示帮助消息。
筛选器:
筛选器名 有效操作符 有效值
----------- --------------- --------------------------
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne 映像名称
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
SESSIONNAME eq, ne 会话名
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量,单位为 KB
USERNAME eq, ne 用户名,格式为 [domain\]user
SERVICES eq, ne 服务名称
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名称
说明: 当查询远程机器时,不支持 "WINDOWTITLE" 和 "STATUS"
筛选器。
示例:
TASKLIST
TASKLIST /M
TASKLIST /V /FO CSV
TASKLIST /SVC /FO LIST
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domain\username /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
C:\Users\lushuaiyin>
这个命令貌似很复杂,有兴趣慢慢研究吧