我有一個運行在Java上的進程運行時的shell腳本。 這個shell腳本只在你點擊時停止CTRL + C 現在我從JTextArea的腳本中捕獲InputStream。 但我不能發送CTRL + C。Ctrl C通過Linux中的OutputStreamWriter
當您在殼牌的Konsole運行CTRL +ç的腳本停止併發送回信息。 這個信息是我無法捕捉的信息。
所以 我怎麼能發送CTRL +ç通過流程運行? 如何從捕捉輸入流CTRL + C?
File dirw = new File("/home/mydir/sh/");
Runtime runtime = Runtime.getRuntime();
Process process = null;
process = runtime.exec("./start_test.sh", null, dirw);
OutputStream outp = new OutputStream(process.getOutputStream());
InputStreamReader isr = new InputStreamReader(process.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
int cont = 1;
while ((line = br.readLine()) != null) {
jtextarea.append("LineOK " + line + "\n");
if(cont == 10) {
outp.write(3); //sending Ctrl+C
outp.flush();
cont =0;
}
cont ++;
}
對於你正在寫字符'3'而不是控制代碼的人。 – Clint 2011-05-02 17:34:46