我有一个有趣的问题。我需要能够有一个允许用户输入命令的窗口,就像它们在终端中并使用python一样。当你输入' python'在mac上它允许你运行python命令。我可以访问' python'函数,但它不会让我通过自定义命令行界面将python命令写入终端。
确实
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = textField.getText();
try {
Process p = Runtime.getRuntime().exec(text);
//Nothing after this line
} catch (IOException i) {
// TODO Auto-generated catch block
i.printStackTrace();
}
}
});
正如您所看到的,每次单击按钮时都会运行一个事件侦听器。 当我输入' python'在我的命令行中,它不允许我输入子命令行,用于python命令。我有一种感觉是因为这条线:
Process p = Runtime.getRuntime().exec(text);
允许我使用我的python命令的任何建议?
感谢您阅读
答案 0 :(得分:0)
您的进程存在阻止Swing事件线程的风险。为了防止这种情况发生,并且为了防止你为Process的OutputStream耗尽OS缓冲区,我建议,