【发布时间】:2015-04-09 03:34:11
【问题描述】:
我正在使用 JAVA 为控制台程序编写 GUI。它启动并且运行良好,但是当我将“\n”或“\r\n”发送到它的标准输入时,它不会做出反应,因为如果我只是在终端中启动这个程序并按“Enter”,它就会做出反应。
此代码用于启动进程:
String cmd="example.exe";
process = new ProcessBuilder(cmd).start();
而这段代码用于发送“\n”
OutputStream outputStream = process.getOutputStream();
outputStream.write("\n".getBytes());
outputStream.flush();
在其他线程中我试图从这个进程中读取
while ((line = is.readLine()) != null && !Thread.currentThread().isInterrupted()) {
...
}
如何正确发送“\n”来接收来自进程的信息?
更新: 我需要发送一个换行符。或“按 Enter”。 我读出和错误,都是空的。 应用程序始终将其状态报告为对按 Enter 的反应。所以没有反应就是错误。
【问题讨论】:
-
使用任何可以解释它的字符流。
-
欢迎堆栈溢出。为了获得好的帮助,您可能需要指定您期望发生的事情 - 为什么您希望它的行为与它的行为有所不同?你想发生什么?是否要向“接收”线程发送“\n”的字节码?
标签: java process console stdin