Java Runtime.getRuntime():从执行命令行程序获取输出

我正在使用运行时从Java程序运行命令提示符命令。但是,我不知道如何获得命令返回的输出。

这是我的代码:

Runtime rt = Runtime.getRuntime();

String[] commands = {"system.exe", "-send" , argument};

Process proc = rt.exec(commands);

我尝试做,System.out.println(proc);但是没有返回任何东西。该命令的执行应返回两个数字,以分号分隔。我怎样才能在变量中打印出来?

这是我现在使用的代码:

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);

但是我没有得到任何输出,但是当我自己运行该命令时,它可以正常工作。

回答:

这是要走的路:

Runtime rt = Runtime.getRuntime();

String[] commands = {"system.exe", "-get t"};

Process proc = rt.exec(commands);

BufferedReader stdInput = new BufferedReader(new

InputStreamReader(proc.getInputStream()));

BufferedReader stdError = new BufferedReader(new

InputStreamReader(proc.getErrorStream()));

// Read the output from the command

System.out.println("Here is the standard output of the command:\n");

String s = null;

while ((s = stdInput.readLine()) != null) {

System.out.println(s);

}

// Read any errors from the attempted command

System.out.println("Here is the standard error of the command (if any):\n");

while ((s = stdError.readLine()) != null) {

System.out.println(s);

}

以上是 Java Runtime.getRuntime():从执行命令行程序获取输出 的全部内容, 来源链接: utcz.com/qa/435931.html

回到顶部