如何确保某个端口未被任何其他进程占用

35 windows networking

我正在Windows环境中开发Java EE应用程序.(我使用的是Windows 7)

我使用的是Tomcat Server,不幸的是端口号8080正忙(由Oracle使用).现在我想为Tomcat分配一个不同的端口.

因此,在更改conf/server.xml文件之前,我想确保某个端口没有被任何其他进程占用,并且它是免费的.

Ara*_*ind 54

您可以使用"netstat"检查端口是否可用.

使用该netstat -anp | find "port number"命令查找端口是否被其他进程占用.如果它被另一个进程占用,它将显示该进程的进程ID.

您必须在端口号之前输入以获取实际输出

Ex netstat -an | 找到":8080"

  • 在Windows中,使用netstat -ano | 找到"8086"命令. (16认同)
  • 在 Windows 10 中不工作。“netstat -ano|findstr port no”工作正常 (5认同)
  • 我复制粘贴命令并在命令提示符下执行相同的操作,它什么也没显示. (4认同)
  • 表示没有进程占用该端口号。如果您不确定,请尝试 SysInternals 的 TCP 查看器并检查端口是否在其中列出。 (3认同)
  • 感谢您的回答,正如我所说,我在 Windows 命令提示符 C:\Users\kiran>netstat -anp | 上执行了以下命令 find 8086 显示FIND: 参数格式不正确 (2认同)
  • 您应该在端口号中用引号引起来。例如,netstat -ano | 找到“ 8086” (2认同)

小智 30

它的 netstat -ano|findstr port no

结果将显示最后一列中的进程ID

  • @sam 基于答案`netstat -ano | 找到“:3306”` (2认同)

小智 12

netstat -ano|find ":port_no"会给你清单.
a:显示所有连接和侦听端口.
n:以数字形式显示地址和端口号.
o:显示与每个连接关联的拥有进程ID.

例如:netstat -ano | find ":1900" 这会给你这样的结果.

UDP    107.109.121.196:1900   *:*                                    1324  
UDP    127.0.0.1:1900         *:*                                    1324  
UDP    [::1]:1900             *:*                                    1324  
UDP    [fe80::8db8:d9cc:12a8:2262%13]:1900  *:*                      1324
Run Code Online (Sandbox Code Playgroud)


fal*_*all 7

如果您更喜欢 Powershell,请使用它。您将获得该进程的名称。

PS C:\Users\Administrator> Get-Process -Id (Get-NetTCPConnection -LocalPort 9093).OwningProcess

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
   6021    1464  2760976    2131548     290.39  25512   2 java
Run Code Online (Sandbox Code Playgroud)

PID 在Id列中,它还提供进程名称。

如果没有进程正在使用此端口,您会收到红色错误消息。

如果要终止 PID 25512 的进程,请使用

taskkill /PID 25512 /F
Run Code Online (Sandbox Code Playgroud)

/F意味着强制,有些进程不能在没有强制的情况下被杀死/F