打开一个独立的终端窗口并使用Java运行命令

时间:2013-12-11 11:35:29

标签: java macos terminal runtime

基本上,我正在尝试打开一个终端窗口并命令它启动一个php脚本 当脚本向终端输出新行时,也能够立即输入并获得输出。如果可能,我打算将其hidden

更像是将终端的输出和输入镜像到java应用程序本身

我做了

Runtime.getRuntime().exec("/usr/bin/open -a Terminal ~/Desktop/test.php"); //mac

一旦php脚本将输出发送到终端,我不知道如何输入并立即获得输出。

请在这里帮助我

2 个答案:

答案 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