Java 程序侦听是否有任何其他 Java 程序正在运行



我有两个Java程序:Demo1.java和Demo2.java

演示2.java

public class Demo2 extends Thread{
public void run(){
while(true){
System.out.println("Demo2 is running");
}
}
}

我想:

  1. 运行演示2
  2. 当演示 2 正在运行时,运行演示 1
  3. 从演示 1 中了解演示 2 是否正在运行。

我应该如何编写演示1.java

如果我理解的话,你有两个程序,意味着两个独立的线程。因此,您可以像这样访问进程列表:

窗户:

try {
Process proc = Runtime.getRuntime().exec("process.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
OutputStreamWriter oStream = new OutputStreamWriter(proc.getOutputStream());
oStream.write("process where name='process.exe'");
String line;
while ((line = input.readLine()) != null) { 
if (line.contains("process.exe")) 
return true; 
} 
input.close(); 
} 
catch (Exception ex) { 
// handle error 
}

Linux:

try {
Process p = Runtime.getRuntime().exec(new String[] { "bash", "-c", "ps aux | grep process" });
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
if (line.contains("process")) {
// process is running
}
}
}
catch (Exception e) {
// handle error
}

希望对您有所帮助。

最新更新