如何在Windows中使用Runtime.getRuntime()。exec(命令)?
1.
command = "cat data.json"; // works in linux terminal
Runtime.getRuntime().exec(command) // runs in linux => Runs OK
2.
command = "type data.json"; // works in windows cmd
Runtime.getRuntime().exec(command) // runs in windows => Fails to run
3.
command = "cmd /C type data.json"; // works in windows cmd
Runtime.getRuntime().exec(command) // runs in windows => Runs OK
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); // Output is empty
在第三种情况下,input.readLine()的输出为空,但如果我使用命令"输入data.json"在cmd中,它将以与使用" cat data.json"在linux上相同的方式打印json。我对发生的事感到困惑?我想在Windows和Linux上运行COMMAND。任何帮助表示赞赏!
谢谢!
答案 0 :(得分:0)
尝试使用ProcessBuilder重定向流程上的错误流。在所有可能的情况下,命令都写到STDErr。您还可以使用Process.getErrorStream()获取该流。