最全解决方式java.net.BindException: Address already in use: JVM_Bind

最全解决方式java.net.BindException: Address already in use: JVM_Bind

本文的一些关键字

java.net.BindException: Address already in use: JVM_Bind

gradle gretty appRun 端口占用 ntoskrnl.exe 80端口 9001端口 pid4 系统进程 System

其实这个错误就是一个端口被占用的错误,正常情况下只要找到占用端口的进程然后杀死就可以了

但是 今天遇到了个很奇葩的问题 占用端口的为PID:4 系统进程 然后就在网上详细找了一下 以下为解决过程

  • 普通端口被占用:

这个教程太普遍了全是复制粘贴文,就不上截图了 只说步骤

1.查看占用端口进程:netstat -ano

2.杀死占用端口进程:taskkill /pid 进程id /f (把进程id换为要杀死的进程id即可)

  • 第二种我处理的过程

    1. 首先启动 出现该异常

      最全解决方式java.net.BindException: Address already in use: JVM_Bind

    2. 查看详细错误信息

      最全解决方式java.net.BindException: Address already in use: JVM_Bind

    3. 打印详细日志信息

      最全解决方式java.net.BindException: Address already in use: JVM_Bind

    4. 可以看到 我使用的是80端口进行启动,但是启动的时候还使用了9000 和9001服务端口

      最全解决方式java.net.BindException: Address already in use: JVM_Bind

    5. 这时候排查 使用 命令 netstat -ano 进行排查端口占用情况

      可以看到 我的80端口和9000端口都没有被占用 而9001端口被系统进程给占用的

      最全解决方式java.net.BindException: Address already in use: JVM_Bind

    6. 正常的思维是杀死该端口

      可以看到是无法杀死系统主进程的(已经用了管理员权限命令行)

      最全解决方式java.net.BindException: Address already in use: JVM_Bind

    7. 于是在网上找了一下 原来是英特尔的图形命令中心服务 给占用了

    8. 打开服务找到改服务 禁止启动就好啦 最全解决方式java.net.BindException: Address already in use: JVM_Bind