Kolejne pytanie w krótkim odstępie czasu, ale musi to być naprawdę oczywisty błąd, którego nie widzę. Napisałem kod, aby uruchomić plik wsadowy poniżej, ale dostaję komunikat o błędzie z informacją, że nie można go znaleźć, ale zapewniam, że plik istnieje w katalogu!ProcessBuilder nie może znaleźć pliku ?!
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();
}
}
i tutaj jest komunikat o błędzie
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
Tak więc, adb.bat znajduje się w c: \, prawda? spróbuj umieścić go lub jego kopię w folderze projektu – keyser
też tam nie działa. Czy poprawnie używam procesora? – Rookie
Czy próbowałeś wykonać zawartość pliku wsadowego jako argumenty do 'ProcessBuilder'? Np. Jeśli "adb.bat" robi coś w rodzaju "java -version", czy próbowałeś zrobić coś takiego jak 'nowy ProcessBuilder (" java "," - serwer ")'? Zastanawiam się, czy Java próbuje traktować adb.bat jak plik wykonywalny, mimo że jest to po prostu skrypt tekstowy. – CodeBlind