目前我正在試圖讓自己的前端GDB。到目前爲止,除了一部分外,一切都是順其自然的;管道輸入到過程中,一旦它被打開。我有一個例子,從我下面的代碼:試圖使用JButton作爲InputStream
private JButton run = new JButton("Run");
JToolBar vertical = new JToolBar(JToolBar.VERTICAL);
vertical.add(run);
add(vertical, BorderLayout.WEST);
run.addActionListener(new ActionListner()
{
public void actionPerformed(ActionEvent arg0)
{
Process proc;
proc = Runtime.getRuntime().exec("gdb");
proc = Runtime.getRuntime().exec("r");
}
}
這將讓我運行命令「GDB」和管它的所有輸出到我的文本區,但在此之後,該進程關閉,我可以」再運行'r'等命令到相同的進程,而是打開另一個命令並嘗試自己執行命令'r';那麼我有沒有辦法在同一個過程中執行這些?另外,因爲這將是一個GUI,我需要讓多個按鈕能夠與同一個進程交互,即按鈕'Run'需要能夠執行'r',而按鈕'Breakpoint'需要執行'b'到相同的過程,這可能嗎?
TL; DR:需要通過GUI使用Java中的相同進程運行多個系統命令,有可能嗎?
嗯...我將如何得到的輸出,並將其傳遞到我的JTextArea? – centip3de
@ centip3de該進程的正常輸出已根據OP輸入到您的文本區域;這樣做不應該需要任何改變。 – oldrinb
我試圖使用BufferedReaders輸出到我的TextArea,它到目前爲止與Runtime一起工作(pastebin.com/hSK27piR(無法讓我的代碼在commetns中正確格式化))。然而,當我添加你的代碼時,在執行我的Runtime()調用之後,我的BufferedReader和lines變量都是null – centip3de