Hướng dẫn thực hành để làm việc ổn định với các tiến trình bên ngoài trong Java: cách tránh treo do các luồng chưa được đọc
stdout/
stderr, cấu hình đúng mã hóa đầu ra (ví dụ,
UTF-8,
CP866), tính đến khác biệt lệnh giữa các nền tảng (
ls so với
dir), xử lý quyền truy cập và mã thoát thông qua
process.exitValue(), đóng tài nguyên để không rò rỉ và tránh deadlock khi tương tác. Chúng ta xem xét cách sử dụng đúng
ProcessBuilder, đọc song song các luồng (thread/
ExecutorService), kết thúc đúng thông qua
process.destroy(), cũng như đường dẫn đa nền tảng với
File.separator.