Windows 按端口号终止进程

Windows Kill Process By PORT Number

我在 Spring 工具套件 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.

有一些类似的问题,但 none 的答案不适合我。

Solution 1: Kill Process

运行 作为管理员的命令行

netstat -ano | findstr :<yourPortNumber>
taskkill /PID <typeyourPIDhere> /F

Solution 2: Change Port

请确保您要为应用程序设置的新端口不会侦听任何其他进程

Change the port 
server.port=8088 # Server HTTP port.

Solution 3: Another way is to terminate the process (in IDE) and clean and rebuild project.

更新:

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

如何查看端口状态?

选项 1

运行 resmon.exe 然后转到 Network -> Listening Port (也可以在 TaskManager 上查看)


选项 2

PowerShell

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

cmd

 C:\> netstat -a -b

(添加 -n 以阻止它尝试解析主机名,这将使它更快。)

-a 显示所有连接和侦听端口。

-b 显示创建每个连接或侦听端口所涉及的可执行文件。在某些情况下,众所周知的可执行文件托管多个独立组件,在这些情况下,会显示创建连接或侦听端口所涉及的组件序列。在这种情况下,可执行文件名称位于底部的 [] 中,顶部是它调用的组件,依此类推,直到达到 TCP/IP。请注意,此选项可能很耗时,除非您有足够的权限,否则将会失败。

-n 以数字形式显示地址和端口号。

-o 显示与每个连接关联的所属进程 ID。

我发现 PatelRomil 的回答对我不起作用。我发现 运行:

netstat -a -o -n

并获取端口的 PID,然后 运行:

taskkill /F /PID [PID]

对我有用。将 [PID] 替换为上一个命令中 table 中的值。