Tengo un programa que es:¿Cómo obtengo el código de salida del comando bash de una ejecución de proceso desde Java?
import java.io.*;
import java.util.*;
public class ExecBashCommand {
public static void main(String args[]) throws IOException {
if (args.length <= 0) {
System.err.println("Need command to run");
System.exit(-1);
}
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("./nv0914 < nv0914.challenge");
Process process1 = runtime.exec("echo ${?}");
InputStream is = process1.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);
}
}
}
nota: nv0914 es un archivo ejecutable bash y nv0914.challenge es un archivo de texto. Cuando ejecuto cualquier comando normal en el terminal y justo después de eso si verifico el código de salida usando echo ${?}
. Ahora quiero hacer lo mismo usando un programa, pero el programa simplemente está dando el resultado ${?}
. ¡Por favor, ayúdame!
¿Qué pasa con [process.exitValue()] (http://download.oracle.com/javase/6/docs/api/java/lang/Process.html#exitValue())? – eggyal
Remonté el último cambio a la pregunta, en la que el OP implementó parcialmente la solución que proporcionó Peter Lawrey. Este fue un cambio material a la pregunta y realmente lo hizo inutilizable, IMO, para los lectores futuros. –