Thư viện ZT Process Executor là một thay thế cho Apache Commons Exec. Nó có chức năng để chạy lệnh, bắt đầu ra, cài đặt thời gian chờ, v.v.
Tôi chưa sử dụng, nhưng có vẻ được ghi chép hợp lý.
Ví dụ từ tài liệu: Thực thi lệnh, bơm stderr vào trình ghi nhật ký, trả về kết quả dưới dạng chuỗi UTF8.
String output = new ProcessExecutor().command("java", "-version")
.redirectError(Slf4jStream.of(getClass()).asInfo())
.readOutput(true).execute()
.outputUTF8();
tài liệu của nó sẽ liệt kê những ưu điểm sau trên Commons Exec:
- Cải thiện xử lý dòng
- đọc/ghi vào suối
- Chuyển hướng stderr stdout
- Cải thiện việc xử lý thời gian chờ
- Cải thiện việc kiểm tra mã thoát
- Cải thiện API
- Một tàu đối với trường hợp sử dụng khá phức tạp
- Một lót để có được đầu ra quá trình vào một String
- Truy cập vào Process đối tượng sẵn
- Hỗ trợ cho các quá trình không đồng bộ (Tương lai)
- Cải thiện khai thác gỗ với SLF4J API
- Hỗ trợ cho nhiều quy trình
Mọi thứ trở nên thú vị nếu tập lệnh trình bao đó tương tác. – ernesto
biến myCommand là gì?nếu có, sau đó nó sẽ không hoạt động, phương thức exec yêu cầu String [] và đối số, xem bên dưới trả lời của tôi, nó hoạt động hoàn hảo –
http://stackoverflow.com/questions/525212/how-to-run-unix-shell-script -from-java-code/37327025 # 37327025 –