通过端口号关闭Windows进程

33

我正在使用Spring Tool Suite IDE中的嵌入式Tomcat服务器。我的问题是当我运行我的项目时,会出现以下错误:

***************************
APPLICATION FAILED TO START
***************************

Description:

The Tomcat connector configured to listen on port 8080 failed to start. The port may already be in use or the connector may be misconfigured.

Action:

Verify the connector's configuration, identify and stop any process that's listening on port 8080, or configure this application to listen on another port.

有一些类似的问题,但是没有一个答案对我有用。

2个回答

93
解决方案1:结束进程
以管理员身份运行命令行
netstat -ano | findstr :<yourPortNumber>
taskkill /PID <typeyourPIDhere> /F

解决方案2:更改端口
请确保您为应用程序设置的新端口没有被任何其他进程使用。
Change the port 
server.port=8088 # Server HTTP port.

解决方案3: 另一种方法是终止进程(在IDE中),然后清理并重新构建项目。

enter image description here

enter image description here

更新:

对于解决方案2,请确保您将为应用程序设置的新端口不会被任何其他进程监听

如何检查端口状态?

选项1

运行resmon.exe并转到网络 -> 监听端口(也可在任务管理器中查看) enter image description here


选项2

PowerShell

Get-Process -Id (Get-NetTCPConnection -LocalPort portNumber).OwningProcess

cmd

 C:\> netstat -a -b
(加上 -n 可以停止尝试解析主机名,这样可以大大提高速度。) -a 显示所有连接和监听端口。 -b 显示创建每个连接或监听端口的可执行文件。在某些情况下,知名的可执行文件会托管多个独立组件,在这种情况下,显示创建连接或监听端口所涉及的组件的序列。在这种情况下,可执行文件名称在底部的 [] 中,顶部是它调用的组件,依此类推,直到到达 TCP/IP。请注意,此选项可能耗时,并且如果您没有足够的权限,则会失败。 -n 以数字形式显示地址和端口号。 -o 显示与每个连接关联的拥有进程 ID。

没有冒号的这个命令对我有用:'netstat -ano | findstr <yourPortNumber>' - Bharathiraja

9
我发现 PatelRomil 给出的答案对我不起作用。我发现通过运行以下命令可以解决问题:
netstat -a -o -n

获取端口的PID,然后运行以下命令:
taskkill /F /PID [PID]

对我有用。使用上一个命令中表格中的值替换[PID]


你好@JackU,能否告诉我哪个选项对你不起作用? - Romil Patel
1
@PatelRomil 你好,选项1:在我的情况下无法从IDE中终止进程。 选项2:由于外部应用程序正在使用该端口,因此也不太可能。 选项3:在使用CMD时出现错误“findstr未被识别为内部或外部命令”。我意识到你的选项3和我的答案非常相似,除了找到PID的方式,我无法按照你的答案进行操作。毫无疑问,你的答案大多数情况下都是解决方案。根据编辑前的顺序提供选项。 - JackU

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接