Tôi muốn chuyển hướng một đầu ra quá trình java hướng tới đầu ra tiêu chuẩn của quá trình cha mẹ java.ProcessBuilder được chuyển hướng đến đầu ra tiêu chuẩn
Sử dụng lớp ProcessBuilder như sau:
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder("cmd");
processBuilder.directory(new File("C:"));
processBuilder.redirectErrorStream(true); // redirect error stream to output stream
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
}
tôi lại có thể ngờ rằng kết quả của "cmd", mà là giống như:
Microsoft Windows [phiên bản 6.1.7601] Copyright (c) Tổng công ty Microsoft 2009. Tous làm réservés.
được hiển thị trong bảng điều khiển DOS được sử dụng để chạy chương trình java. Nhưng không có gì được hiển thị ở tất cả trong DOS Console. Trong các chủ đề thảo luận khác, tôi thấy các giải pháp sử dụng một lớp BufferedReader: nhưng ở đây tôi muốn các đầu ra của quá trình được hiển thị trực tiếp trong đầu ra tiêu chuẩn, mà không sử dụng bất kỳ BufferedReader hoặc "trong khi đọc vòng lặp". Có thể không?
Cảm ơn.
Nhìn vào các API cho các lớp hệ thống cho các phương pháp mà bạn sẽ cần: 'setOut (...)', 'setIn (...)', 'setErr (...) '. –
Điều đó sẽ hoạt động. Tôi không hiểu tại sao nó lại không. – Qix