Un'altra domanda in rapida successione, ma questo deve essere un errore molto evidente che non vedo. Ho scritto del codice per eseguire un file batch di seguito, ma ricevo un messaggio di errore che dice che non è possibile trovare il file, ma posso assicurarti che il file esiste nella directory!ProcessBuilder non trova il file ?!
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();
}
}
e qui è il messaggio di errore
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
Quindi, adb.bat è in c: \, giusto? prova a metterlo o una copia nella cartella del progetto – keyser
non funziona neanche lì. Sto usando il processbuilder correttamente? – Rookie
Hai provato a eseguire il contenuto del file batch come argomento del tuo 'ProcessBuilder'? Ad esempio, se "adb.bat" fa qualcosa come "java -version", hai provato a fare qualcosa come 'new ProcessBuilder (" java "," - server ")'? Mi chiedo se Java stia cercando di trattare adb.bat come un eseguibile, anche se in realtà è solo uno script basato su testo. – CodeBlind