import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ProcessKiller { public static void main(String[] args) { int port = 8080; // 要释放的端口号 try { // 构造命令 String command = ""; String os = System.getProperty("os.name").toLowerCase(); // 获取操作系统名称 if (os.contains("win")) { // Windows平台 command = "cmd /c netstat -ano | findstr :" + port; } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) { // Linux或Mac平台 command = "lsof -i :" + port; } else { System.out.println("不支持的操作系统"); return; } // 执行命令 Process process = Runtime.getRuntime().exec(command); // 读取命令输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { // 获取进程ID String[] parts = line.trim().split("\\s+"); // 将行按空格切分 String pid = parts[parts.length - 1]; // 终止进程 if (os.contains("win")) { Runtime.getRuntime().exec("cmd /c taskkill /F /PID " + pid); } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) { Runtime.getRuntime().exec("kill -9 " + pid); } System.out.println("已终止进程: " + pid); } // 关闭读取器 reader.close(); } catch (IOException e) { e.printStackTrace(); } } }
标签:java,String,process,pid,contains,端口,os From: https://www.cnblogs.com/note2023/p/17657641.html