Otra pregunta en rápida sucesión pero esto tiene que ser un error muy obvio que no estoy viendo. He escrito un código para ejecutar un archivo por lotes a continuación, pero aparece un mensaje de error que dice que no puede encontrar el archivo, pero puedo asegurarle que el archivo existe en el directorio.ProcessBuilder no puede encontrar el archivo ?!
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();
}
}
y aquí está el mensaje de error
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
Entonces, adb.bat está en c: \, ¿verdad? intente colocarlo o una copia de él en la carpeta del proyecto – keyser
tampoco funciona allí. ¿Estoy usando Processbuilder correctamente? – Rookie
¿Ha intentado ejecutar los contenidos del archivo de proceso por lotes como argumentos para su 'ProcessBuilder'? Por ejemplo, si "adb.bat" hace algo como "java -version", ¿ha intentado hacer algo como 'new ProcessBuilder (" java "," - server ")'? Me pregunto si Java está tratando de tratar adb.bat como un ejecutable, a pesar de que en realidad es solo un script basado en texto. – CodeBlind