Estoy usando el tiempo de ejecución para ejecutar comandos del símbolo del sistema desde mi programa Java. Sin embargo, no sé cómo puedo obtener el resultado que devuelve el comando.
Aquí está mi código:
Runtime rt = Runtime.getRuntime();
String[] commands = {"system.exe", "-send" , argument};
Process proc = rt.exec(commands);
Intenté hacerlo System.out.println(proc);
pero eso no me devolvió nada. La ejecución de ese comando debería devolver dos números separados por punto y coma. ¿Cómo podría obtener esto en una variable para imprimir?
Aquí está el código que estoy usando ahora:
String[] commands = {"system.exe", "-get t"};
Process proc = rt.exec(commands);
InputStream stdIn = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(stdIn);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<OUTPUT>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</OUTPUT>");
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
Pero no obtengo nada como mi salida, pero cuando ejecuto ese comando, funciona bien.
pwd && ls
no solo ejecuta un solo archivo, cuando lo hace en un shell, ejecuta tanto los ejecutables/bin/pwd
como los/bin/ls
ejecutables. Si quieres hacer cosas así dentro de Java, tendrás que hacer algo así{"/bin/bash","-c", "pwd && ls"}
. Probablemente ya no tenga la pregunta, pero otras personas sí, así que pensé que podría responderla.