进程呢? 不用关闭嘛
时间: 2023-07-12 09:23:13 浏览: 91
进程、关闭
要关闭指定端口的进程,可以使用Java的ProcessBuilder类和taskkill命令。以下是一个简单的示例代码:
```java
import java.io.*;
public class KillProcess {
public static void main(String[] args) {
try {
String port = "8080"; // 要关闭的端口号
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "netstat -ano | findstr " + port);
builder.redirectErrorStream(true);
Process process = builder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
if (line.contains("LISTENING")) {
String[] tokens = line.trim().split("\\s+");
String pid = tokens[tokens.length - 1];
new ProcessBuilder("cmd.exe", "/c", "taskkill /f /pid " + pid).start();
System.out.println("进程 " + pid + " 已关闭");
}
}
} catch (Exception e) {
System.out.println("关闭进程失败:" + e.getMessage());
}
}
}
```
在上面的示例代码中,我们首先定义了要关闭的端口号,然后创建了一个ProcessBuilder对象并构造了一个命令行。该命令行会执行netstat命令并查找指定端口号的进程。然后,我们启动该进程并读取其输出流。如果输出流中包含“LISTENING”字符串,说明该进程正在监听指定端口号。我们从输出流中提取出进程ID,并构造一个新的命令行来执行taskkill命令以关闭该进程。最后,如果操作成功,会输出一条提示信息。如果操作失败,会输出失败原因。
阅读全文