在网上查找这个问题时,大多数说的是端口被占用,
然后给得两种方法:
1、使用cmd 命令netstat -ano 查看8080端口,然后找到pid 杀掉(具体操作可自行百度);
2、在tomcat中的server.xml 修改端口;
但是,这两个方法不可行,因为我查了一下我的8005,8080,8009都没有被占用;
这时候想到,重启系统应该能解决问题吧,但是事实证明我还是天真了。
然后继续百度找答案,百度了好多都是这两个错误:
1.nrecognized Windows Sockets error: 0: JVM_Bind ;
2.java.net.BindException: Address already in use;
这两个一般用上面的改端口和杀进程可以解决的;
然后我看了一下我报错的代码:
org.apache.catalina.core.StandardServer.await StandardServer.await: create[localhost:8005]:
java.net.SocketException: Unrecognized Windows Sockets error: 10106: create
at java.net.ServerSocket.createImpl(ServerSocket.java:308)
at java.net.ServerSocket.getImpl(ServerSocket.java:257)
at java.net.ServerSocket.bind(ServerSocket.java:376)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:438)
at org.apache.catalina.startup.Catalina.await(Catalina.java:718)
at org.apache.catalina.startup.Catalina.start(Catalina.java:664)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
和他们不同,我报的好像是方法初始化的时候报错的(如果我的理解有错误还请各位大神指教);于是我翻墙出去外面找,
于是找到了这样的说法:
大概就是:服务提供程序无法初始化。所请求的服务提供程序无法加载或初始化。
由于我早上安装了一个叫什么ppt修复软件,导致系统的端口(什么 Windows Sockets error)被修改了,而且重启系统是不生效的;
于是,重置了一下,具体操作:
使用系统管理员身份运行 netsh winsock reset 然后重启电脑。再启动tomcat,发现可以成功启动了。
终于搞定这坑爹的问题。
总结一下:
电脑安装了恶意软件,修改了Windows Sockets ,然后重启也不生效,本想着打算要重装系统了。
但是我又不想,于是找到了问题并解决之,免去了系统重装。
所以,以后还是别装那些恶意软件(关键是360没查出问题)