基本上,我正在尝试打开一个终端窗口并命令它启动一个php脚本
当脚本向终端输出新行时,也能够立即输入并获得输出。如果可能,我打算将其hidden
。
更像是将终端的输出和输入镜像到java应用程序本身
我做了
Runtime.getRuntime().exec("/usr/bin/open -a Terminal ~/Desktop/test.php"); //mac
一旦php脚本将输出发送到终端,我不知道如何输入并立即获得输出。
请在这里帮助我
答案 0 :(得分:0)
创建流程并读取流程的输入流。
(javadoc)getInputStream()
获取子进程的输入流。该流获取从此Process对象表示的进程的标准输出流中传输的数据。
//-->check command line<--
Process process = Runtime.getRuntime().exec("/usr/bin/php /home/amit/hello.php");
BufferedInputStream iStream = new BufferedInputStream(process.getInputStream());
BufferedOutputStream oStream = new BufferedOutputStream(process.getOutputStream());
byte[] buffer = new byte[1024];
while (true){
int length = iStream.read(buffer);
if(length == -1)
break;
System.out.println(new String(buffer, 0, length));
}
注意:已经写过Linux。
答案 1 :(得分:0)
不是在终端中执行php脚本,而是使用php执行脚本,只需在php中执行php脚本并捕获输入/输出。
$ which php
/usr/bin/php