【发布时间】:2014-07-21 12:29:16
【问题描述】:
我尝试使用以下代码执行 Linux 命令。但它没有给出输出,只是打印出口 1。当我在 Linux 终端上执行命令时,它给出了输出。当通过 Java 执行时,它给出了错误。请建议。
JButton btnRunningtime = new JButton("RunningTime");
btnRunningtime.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try{
textArea.setText("");
String s2=comboBox.getSelectedItem().toString();
p = Runtime.getRuntime().exec("ps -eo pid,comm,cmd,start,etime | grep -i "+s2);
BufferedReader br = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
{
textArea.append(s+"\n");
System.out.println("Running time "+s);
}
p.waitFor();
System.out.println ("exit: " + p.exitValue());
p.destroy();
}
catch(Exception e)
{
System.out.println("Exception "+e);
}
}
});
btnRunningtime.setBounds(409, 211, 104, 27);
contentPane.add(btnRunningtime);
【问题讨论】:
-
.When execute through Java it gives error哪个错误/异常? -
或者一般来说,复制/粘贴程序的输出。
-
@TAsk 这就是我得到的所有输出出口:1
-
@Rogue 这是我的输出:exit: 1 当我在 p = Runtime.getRuntime().exec("ps -eo pid,comm,cmd,start,etime | grep -i "+s2);行,测试确实被打印出来。所以直到那一行没有错误
-
那么这看起来运行良好。您打印出“exit: 1”,1 是您命令的状态。您是否尝试过自己运行命令?