Eri*_*rik 5 java linux process
我想从我的Java程序中使用linux命令行工具.我启动程序并使用Process类(http://download.oracle.com/javase/6/docs/api/java/lang/Process.html)获取输出:
/* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Process proc = Runtime.getRuntime().exec("octave");
BufferedReader reader =
new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader errorReader =
new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedWriter writer =
new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
int c;
while((c = proc.getInputStream().read()) != -1) {
System.out.print((char)c);
}
System.out.println("End");
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
GNU Octave,版本3.0.5版权所有(C)2008 John W. Eaton等.这是免费软件; 查看复制条件的源代码.绝对无保证; 甚至不适用于适销性或特定用途的适用性.有关详细信息,请键入"保修".
Octave配置为"i486-pc-linux-gnu".
有关Octave的更多信息,请访问http://www.octave.org.
如果您发现此软件有用,请提供帮助.有关更多信息,请访问 http://www.octave.org/help-wanted.html
报告错误(但首先请阅读 http://www.octave.org/bugs.html以了解如何编写有用的报告).
有关以前版本更改的信息,请键入"news".
奇怪的是,如果我在终端中运行八度音程,则正常输出如下:
:〜/ workspace/Console/src/c $ octave
GNU Octave,版本3.0.5版权所有(C)2008 John W. Eaton等.这是免费软件; 查看复制条件的源代码.绝对无保证; 甚至不适用于适销性或特定用途的适用性.有关详细信息,请键入"保修".Octave配置为"i486-pc-linux-gnu".
有关Octave的更多信息,请访问http://www.octave.org.
如果您发现此软件有用,请提供帮助.有关更多信息,请访问http://www.octave.org/help-wanted.html
报告错误(但首先请阅读 http://www.octave.org/bugs.html以了解如何编写有用的报告).
有关以前版本更改的信息,请键入"news".
八度:1>
因此,请求输入的行中的字符不会在我的输入流中发送.为什么?是否可以检测是否请求输入?
谢谢你的回答!
海因里希
我终于可以解决这个问题了:在 Linux 下,将 Octave 与 --interactive 一起使用,最终使用 --no-line-editing 选项,它起作用了:)
海因里希
| 归档时间: |
|
| 查看次数: |
1035 次 |
| 最近记录: |