如何在unix shell中运行命令,然后从/向java应用程序返回输出

时间:2013-10-16 12:24:20

标签: java shell io

我知道如何从我的java应用程序执行shell命令。它应该是这样的:

String command = "java -version";
Process proc = null;
try {
  proc = Runtime.getRuntime().exec(command);
}
catch (IOException e) {
System.out.print(e);
}

我希望将此命令的输出返回到我的java应用程序,而不将输出打印到某个临时文件,然后我从我的应用程序中读取。这可能吗?

1 个答案:

答案 0 :(得分:3)

您需要使用ProcessBuilder

Process process = new ProcessBuilder(
"C:\\PathToExe\\exe.exe","param1","param2").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);
}

已经在stackoverflow上找到的代码在java中执行外部程序