2011-08-15 30 views
8

Chỉ cần tự hỏi, nếu có cái gì tốt hơn, mới hơn, an toàn hơn, nhanh hơn, v.v. Runtime.getRuntime().exec().Có cách nào thay thế cho Runtime.getRuntime(). Exec()

Tôi muốn chạy một quy trình khác từ ứng dụng của mình trên linux và đây là cách duy nhất tôi biết cách thực hiện. Sẽ là tốt đẹp để có một sự thay thế.

+1

Bằng cách nào đó (cụ thể) có đủ không? Có vẻ như bạn chỉ đang yêu cầu chức năng trùng lặp. – kylc

+0

java.lang.Process không phải là mới hơn. Đối với một số mục đích, nó có thể tốt hơn. – bmargulies

+1

tôi không nói rằng có bất cứ điều gì sai với getRuntime.exec chỉ của nó mà tôi đã học về nó nhiều năm trước trong java 1.3, đó là cách duy nhất tôi biết làm thế nào và đã tự hỏi nếu có nhiều hơn một cách để da một con mèo, thats tất cả các. – LoudNPossiblyWrong

Trả lời

13

Làm thế nào về ProcessBuilder?

Một chút hơn:

Được giới thiệu vào Java 1.5, cho phép bạn để kiểm soát nhiều đối với môi trường quá trình - thiết lập thư mục làm việc, cho phép bạn chuyển hướng dòng lỗi cho luồng dữ liệu đầu vào (từ java POV) và một vài thứ nữa.

Từ Oracle's site:

ProcessBuilder - Lớp ProcessBuilder mới cung cấp một nhiều cách thuận tiện để gọi subprocesses hơn không Runtime.exec. Trong cụ thể, ProcessBuilder làm cho nó dễ dàng để bắt đầu một tiến trình con với một môi trường quá trình sửa đổi (nghĩa là, một dựa trên môi trường quy trình của cha mẹ, nhưng với một vài thay đổi).

+0

... nhướng mày, gãi cằm. – LoudNPossiblyWrong

+0

@LoudNPossiblyWrong - đủ công bằng :) xem chỉnh sửa. – MByD

+5

Nếu tôi có thể hỏi ... có cách nào để thực hiện các lệnh từ mã Java mà không sử dụng API của ProcessBuilder và Runtime.getRuntime() không? – SJunejo

Các vấn đề liên quan