Jetty启动项目失败?两个命令解决address already in use问题

一.问题原因

在使用Idea开发Java项目时常常选中Jetty作为我们本地运行项目的Web容器。当我们执行了jetty run后,若Idea被非正常地关闭了,可能出现Idea关闭了但Jetty仍在运行的情况。这时候如果我们重新打开Idea,再次执行jetty run时就会报错:

Failure: Address already in use

二.解决方法

以下为在Windows系统下的解决方法。只需要执行两个命令即可。

命令一:找到占用端口的进程

假如我是在80端口启动了jetty,那么打开windwos“命令提示符”窗口,输入以下命令:

netstat -ano | findstr "127.0.0.1:80"

解释一下,netstat -ano是列出系统当前所有端口的占用情况。但这个列表往往较长,我们想要找到自己要的并不容易。所以才有了命令的后边部分——findstr "80"。findstr命令搜索符合条件的结果,为我们过滤掉大部分的内容,这样就容易找到我们需要的80端口占用情况。

netstat和findstr命令之间有个“|”,这个竖杠表示将netstat命令的结果作为findstr命令的输入。这种写法在Linux系统中也比较常见。

执行此命令的输出结果示例如下:


Jetty启动项目失败?两个命令解决address already in use问题_第1张图片
在这里插入图片描述

我们看到输出结果一共有5列,分别是:协议、本地地址、外部地址、状态、PID。其中本地地址为“127.0.0.1:80”的为我们要找的,其对应的PID是10468。

命令二:使用taskkill杀死占用端口的进程

使用命令一我们拿到了占用端口的进程的PID,10468。再执行以下命令杀死进程即可。

taskkill /PID 10468 /F

其中PID用于指定进程ID,F选项意思是强制结束进程

三.扩展

拿到进程的PID后,如果想进一步了解其对应的程序名称,可以使用以下命令:如PID是4832

tasklist | findstr 4832

其输出结果为:

在这里插入图片描述

另外,如果喜欢我的文章,可以扫码或直接搜索"第四单元"关注我的微信公众号。我会定期发布原创文章,期待你的到来
Jetty启动项目失败?两个命令解决address already in use问题_第2张图片
image

你可能感兴趣的:(Jetty启动项目失败?两个命令解决address already in use问题)