我正在使用运行时从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);
但是我没有得到任何输出,但是当我自己运行该命令时,它可以正常工作。
pwd && ls
不仅执行单个文件,而且在外壳程序中执行时,它还会执行/bin/pwd
和/bin/ls
可执行文件。如果要在Java中执行类似的操作,则需要执行{"/bin/bash","-c", "pwd && ls"}
。您可能不再有这个问题,但其他人可能会再说,我想我可以回答。