2011-12-06 29 views
25

Tôi đang thử bắt đầu một quy trình trong thư mục chính của mình trong ubuntu. Tôi nhận được một mảng ngoài giới hạn ngoại lệ. Đây là mã:Cách đặt thư mục làm việc với ProcessBuilder

Process p = null; 
ProcessBuilder pb = new ProcessBuilder(); 
pb.directory(new File("/home")); 
p = pb.start(); 

đây là ngoại lệ:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:459) 
    at tester.Main.main(Main.java:31) 
Java Result: 1 

Trả lời

60

Bạn đang cố gắng để thực hiện/home và nó không phải là một tập tin thực thi. Đối số constructor của trình tạo quy trình là lệnh để thực thi.

Bạn muốn đặt thư mục hoạt động. Bạn có thể thông qua phương thức directory.

Đây là một ví dụ hoàn chỉnh:

Process p = null; 
ProcessBuilder pb = new ProcessBuilder("do_foo.sh"); 
pb.directory(new File("/home")); 
p = pb.start(); 
+0

Ok, cảm ơn. Tôi chỉ chỉnh sửa câu hỏi bởi vì tôi nhận ra sai lầm tôi đã thực hiện. Tôi nghĩ bạn có thể đã trả lời câu hỏi khác của tôi – Eric

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