我正在使用运行时从Java程序运行命令提示符命令。但是,我不知道如何获得命令返回的输出。
这是我的代码:
Runtime rt = Runtime.getRuntime(); String[] commands = {"system.exe", "-send" , argument}; Process proc = rt.exec(commands);
我尝试做,System.out.println(proc);但是没有返回任何东西。该命令的执行应返回两个数字,以分号分隔。我怎样才能在变量中打印出来?
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); }