package com.example.dxw.apiController;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
public class KillPortProcess {
public static void main(String[] args) {
int port = 9201; // 要杀死的端口号
try {
// 检查端口是否被占用
ServerSocket serverSocket = new ServerSocket(port);
serverSocket.close();
System.out.println("Port " + port + " is not in use.");
} catch (IOException e) {
// 端口被占用,尝试杀死进程
try {
// Windows 平台杀死进程的命令
Process process = Runtime.getRuntime().exec("taskkill /F /PID " + findProcessId(port));
process.waitFor();
System.out.println("Process running on port " + port + " has been killed.");
} catch (IOException | InterruptedException ex) {
ex.printStackTrace();
}
}
}
// 根据端口号查找对应的进程 ID
private static int findProcessId(int port) throws IOException {
Process process = Runtime.getRuntime().exec("netstat -a -n -o");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
if (line.contains(":" + port)) {
String[] parts = line.trim().split("\\s+");
return Integer.parseInt(parts[parts.length - 1]);
}
}
return -1;
}
}
java代码杀端口
最新推荐文章于 2024-05-24 09:18:32 发布