2011-08-20 30 views
21

Làm thế nào để thực hiện lệnh trong Java với các tham số?Làm thế nào để thực hiện lệnh với các tham số?

Process p = Runtime.getRuntime().exec(new String[]{"php","/var/www/script.php -m 2"}); 

Không hoạt động.

String[] options = new String[]{"option1", "option2"}; 
Runtime.getRuntime().exec("command", options); 

Không hoạt động, bởi vì nó không chỉ định thông số "m".

Trả lời

19

Xem nếu làm việc này (xin lỗi không thể kiểm tra nó ngay bây giờ)

Runtime.getRuntime().exec(new String[]{"php","/var/www/script.php", "-m", "2"}); 
1

Điều sau đây sẽ hoạt động tốt.

Process p = Runtime.getRuntime().exec("php /var/www/script.php -m 2"); 
19

Sử dụng ProcessBuilder thay vì Runtime#exec().

ProcessBuilder pb = new ProcessBuilder("php", "/var/www/script.php", "-m 2"); 
Process p = pb.start(); 
+0

Không thử nghiệm, BTW. –

+1

Không biết về ProcessBuilder. Cám ơn vì đã chia sẻ. –

+1

Nếu nó không hoạt động: 'ProcessBuilder mới (" php "," /var/www/script.php "," -m "," 2 ");' –

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