要捕获来自另一个进程的System.out消息,可以使用Java的ProcessBuilder和Process类来实现。下面是一个示例代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class CaptureProcessOutput {
public static void main(String[] args) {
try {
ProcessBuilder pb = new ProcessBuilder("your_command_here");
Process process = pb.start();
// 获取进程的标准输出流
InputStream inputStream = process.getInputStream();
// 将输入流转换为缓冲字符流
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
// 逐行读取输出内容
while ((line = reader.readLine()) != null) {
// 处理输出内容,这里可以根据需要进行相应的操作
System.out.println(line);
}
// 等待进程执行结束
int exitCode = process.waitFor();
// 输出进程的退出码
System.out.println("Exit Code: " + exitCode);
// 关闭流
reader.close();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
在上面的示例代码中,使用ProcessBuilder创建一个新的进程,并使用getInputStream()方法获取其标准输出流。然后,使用BufferedReader逐行读取输出内容,并进行相应的处理。最后,使用waitFor()方法等待进程执行完毕,并获取其退出码。
请注意,你需要将"your_command_here"替换为实际的命令。