我需要一个Java程序的自定义REPL。 REPL无法读取和写入调用java的终端窗口,因为它的输出将与经常写入stdout的所需库的输出混合(并且库的输出很重要)。
所以,我想打开第二个gnome-terminal窗口,让它与Java交互,就像普通的gnome-terminal进程与bash交互一样:终端将用户输入发送给JVM(不是bash) ; JVM将输出发送到终端,并将其显示给用户。
但是,使用ProcessBuilder
打开gnome-terminal会导致终端窗口运行bash(默认行为)。是否可以阻止此操作并使用InputStream
返回的Process.getInputStream()
获取终端的输出,并使用OutputStream
返回的Process.getOutputStream()
向其发送输出?< / p>
Java需要表现得像一个设计用于在xterm上运行的应用程序&#34;根据gnome-terminal的手册页。但是对于这意味着什么没有进一步的解释。
有关这方面的经验吗?