java8 获取linux系统的Javal.lang.Process类 pid
时间: 2024-09-30 08:12:02 浏览: 38
在Java 8中,你可以通过`java.lang.Process`类获取Linux系统进程的PID(Process ID)。首先,你需要创建一个`ProcessBuilder`实例,然后执行相应的命令(如`ps -p <pid>`),接着使用`start()`方法启动这个命令。一旦进程开始运行,你可以从`Process`对象中获取到PID。
以下是一个简单的示例:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) throws Exception {
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "ps -p $(pgrep YourProgramName)"); // 将YourProgramName替换为你程序的实际名称
Process process = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
if (line.contains("PID")) { // 如果包含"PID"关键字,说明接下来可能是PID
int pid = Integer.parseInt(line.split(" ")[0]); // 分割并提取PID
System.out.println("Process ID: " + pid);
break; // 找到PID后退出循环
}
}
process.waitFor(); // 等待进程结束
}
}
```
在这个例子中,我们使用`pgrep`查找正在运行的特定程序,然后从输出中解析出PID。记住,这只是一个基本的示例,实际操作可能会因为命令的不同而有所变化。
阅读全文