我一直在玩 Java,我试图制作一个开始 ping 地址并打印出“ms”的程序。
我有一个 JButton:
JButton start = new JButton("START");
start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
doCommand();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
doCommand() 方法如下所示:
public static void doCommand() throws IOException{
String s = null;
ProcessBuilder pb = new ProcessBuilder(commands); //definiramo procesBuilder
Process proces = pb.start(); //zaženemo proces (vrne Process)
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proces.getInputStream())); //Branje outputa procesa
BufferedReader stdError = new BufferedReader(new InputStreamReader(proces.getErrorStream())); //Branje error outputa
while((s = stdInput.readLine()) != null){ //dokler output obstaja (ni error)
int dvop = s.indexOf(":") + 16;
if(s.startsWith("Reply")){
s=s.substring(dvop);
int pres = s.indexOf(" ");
s=s.substring(0,pres-2);
//System.out.println(s);
label.setText(s);
}
}
while((s = stdError.readLine()) != null){ //dokler error obstaja
System.out.println(s);
}
}
发生的事情是,每次我按下按钮时程序都会冻结并且什么也没有发生,我什至无法以“正常”的方式关闭它......我想我做错了什么......