Một câu hỏi khác trong kế tiếp nhanh chóng nhưng điều này phải là một lỗi thực sự rõ ràng mà tôi không nhìn thấy. Tôi đã viết một số mã để chạy một tập tin thực thi dưới đây nhưng tôi nhận được một thông báo lỗi nói rằng nó không thể tìm thấy tập tin nhưng tôi có thể đảm bảo với bạn rằng tập tin không tồn tại trong thư mục!ProcessBuilder không thể tìm thấy tệp ?!
public class Pull {
public void pullData() throws IOException {
ProcessBuilder pb = new ProcessBuilder("adb.bat");
File f = new File("C:\\");
pb.directory(f);
Process p = pb.start();
}
public static void main(String[] args) throws IOException {
Pull pull = new Pull();
pull.pullData();
}
}
và đây là thông báo lỗi
Exception in thread "main" java.io.IOException: Cannot run program "adb.bat" (in directory "C:\"): CreateProcess error=2, The system cannot find the file specified
Vì vậy, adb.bat là trong c: \, phải không? thử đặt nó hoặc một bản sao của nó trong thư mục dự án – keyser
cũng không hoạt động ở đó. Tôi đang sử dụng processbuilder một cách chính xác? – Rookie
Bạn đã thử thực hiện các nội dung của tệp lô làm đối số cho 'ProcessBuilder' của bạn chưa? Ví dụ: nếu "adb.bat" thực hiện điều gì đó như "java -version", bạn đã thử làm một cái gì đó như 'ProcessBuilder mới (" java "," - server ")'? Tôi tự hỏi nếu Java đang cố gắng để điều trị adb.bat như một thực thi, mặc dù nó thực sự chỉ là một kịch bản dựa trên văn bản. – CodeBlind