Estoy averiguando un mecanismo para llamar a un ejecutable desde Java y pasar parámetros específicos. ¿Como lo puedo hacer?
Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running %s is:", Arrays.toString(args));
while ((line = br.readLine()) != null) {
System.out.println(line);
}
El código anterior funciona. Pero no puedo pasar parámetros en . MyExe.exe acepta parámetros. Otro problema es cuando PathToExe tiene espacios en blanco. ProcessBuilder parece no funcionar. Por ejemplo:
C:\\User\\My applications\\MyExe.exe
Gracias.
fuente
new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
¿Es este fragmento valioso para los argumentos de opciones? Por ejemplo -h que significa ayuda y así sucesivamente ..-h
como una opción, otro podría interpretarlo como un nombre de archivo.ProcessBuilder
ni sabe ni le importa. Re rutas con espacios: esa es una de las razones por las que los argumentos se dan como cadenas discretas en lugar de (digamos) una lista delimitada por espacios como en la línea de comandos y en algunas API deficientes. Tire espacios allí con abandono, toda la ruta del programa se entregará al sistema operativo para que la trate según corresponda.