Chương trình Java của tôi sử dụng ProcessBuilder (với redirectErrorStream được đặt đúng) và có một vòng lặp chạy phương thức đọc của luồng đầu vào của quy trình đang chặn. Chương trình bên ngoài mà tôi đang gọi sau đó dừng lại chờ đợi đầu vào và stdin. Bây giờ tôi muốn giết quá trình. Điều này không được thực hiện bởi (trong một thread riêng biệt) gọi phương thức tiêu hủy của quá trình, và gọi phương thức đóng của inputstream để ngăn chặn phương thức đọc khỏi chặn nữa, sao cho chuỗi ban đầu của tôi có thể kết thúc cuộc sống của nó?tại sao khối inputstream.close() của java?
Vì lý do nào đó, process.getInputStream().close()
khối. Từ JavaDoc tôi không thấy lý do tại sao điều này có thể xảy ra. Hơn nữa, tôi không hiểu tại sao javadoc lại nói "Phương thức đóng của InputStream không làm gì cả." (link to javadoc) Ai đó có thể giải thích điều này?
Cảm ơn :-)
Bạn có chắc chắn điều này không xảy ra do chương trình bên ngoài bạn đang chạy không? – Geo