最近,在整理web项目下的运行出现的几种情况的解决方法
1、一种是原来的javaw.exe没有结束掉而又新创建了一个javaw.exe进程(如jdk异常退出)。这本无可厚非,允许多个java的进程同时运行,但是如果两个java的进程都使用了同一个资源的情况下,后者的javaw.exe进程就会出现Jvm Bind的问题。
解决方法:在资源管理器进程(ctrl+alt+delete)中找出javaw.exe进程,关闭与当前需要执行的javaw.exe无关联的其他javaw.exe进程。注意如果在Eclipse下运行,eclipse也会创建一个javaw.exe进程,这个进程所占的内存通常比其他javaw.exe大,不要关闭这个进程。
2、第二种情况就是端口占用。首先查看一下端口占用的情况:windows下在cmd.exe中输入:netstat -ano
根据命令行输出找到监听端口(如tomcat一般是用8080)的进程号ID,找到占用8080端口的pid,通过在”资源管理器“中找到对应pid的进程,关闭该进程,解除其对端口占用。下次启动应用程序应该就不会出现JVM Bind的问题了。
3、第三种是比较正常的情况出现,比较好解决,如在eclipse中开启了两个tomcat(如测试的时候会开启内嵌服务器,jetty、tomcat 等web服务器),占用同一个端口。
解决方法:1、此时只需要关掉其中一个服务器就行
2、或者不清楚是否有其他关键进程占用此端口,可以修改服务器端口号
4、netstat -aon|findstr "49157" 查看端口
tasklist|findstr "2720" 查看端口对应的进程,直接定位关掉或杀掉对应的端口
5、最暴力的解决方法,也是最有效的办法,就是重启电脑,貌似是用这种方法有点nc,好像我以前也这样干过,O(∩_∩)O。