使用JAVA通过STDIN向外部进程发送命令

时间:2017-11-28 15:50:44

标签: java process stdin runtime.exec bufferedwriter

我们正在尝试使用Java中的Runtime exec写入命令的STDIN。 我们使用cmd / c来执行命令,因为没有cmd / c,Runtime exec将无法识别它。这应该将“q”和换行符写入名为output.txt的文件中。我们可以找到该文件,但它没有任何内容。

String cmd = "cmd /c TYPE CON>output.txt";

try{
    process = Runtime.getRuntime().exec(cmd, null);
    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
    bufferedWriter.write("q");
    bufferedWriter.newLine();
    bufferedWriter.flush();
    bufferedWriter.close();
}catch(Exception e){}

我们还试图直接使用输出流并写入字节而没有成功。

它必须是STDIN命令,我们是否误解了process.getOutputStream()

我们已验证相同的命令在命令提示符下有效。

我们目前在Windows 10上

我们尝试过stackoverflow和其他网站提供的解决方案,但无济于事。

0 个答案:

没有答案