我試圖從一個java程序運行一個shell腳本(比如myscript.sh)。如何從一個Java程序在新的gnome終端中啓動一個shell腳本
當我從終端運行腳本,像這樣:
./myscript.sh
它工作正常。
但是,當我從Java程序調用它,用下面的代碼:
try
{
ProcessBuilder pb = new ProcessBuilder("/bin/bash","./myScript.sh",someParam);
pb.environment().put("PATH", "OtherPath");
Process p = pb.start();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line ;
while((line = br.readLine()) != null)
System.out.println(line);
int exitVal = p.waitFor();
}catch(Exception e)
{ e.printStackTrace(); }
}
它不進入相同的方式。 幾個shell命令(如sed,awk和類似命令)會被跳過,並且根本不會提供任何輸出。
問:是否有某種方法可以在使用java的新終端中啓動此腳本。
PS:我發現「gnome-terminal」命令在shell中啓動一個新的終端, 但是,我無法弄清楚,如何在java代碼中使用相同的命令。
我是使用shell腳本的新手。請幫助
在此先感謝
確定,這些命令在「OtherPath」找到你設置的? – Henry