该命令适用于终端,但在java程序

时间:2016-05-08 21:08:00

标签: java linux terminal runtime exec

我编写了一个流程管理器程序,它所做的一件事就是在关闭时退出所有正在运行的流程 ,所以有代码

public void stop_all() throws IOException {
   Process p = Runtime.getRuntime().exec("kill -9 -1");
   System.out.println("killed");
}

并且按钮上有操作

private void exitButton(java.awt.event.ActionEvent evt) {                                         
Run ob = new Run();
    try {
        ob.stop_all();
    } catch (IOException ex) {
        Logger.getLogger(mainmenu.class.getName()).log(Level.SEVERE, null, ex);
    }

this.dispose();

}

我不知道它为什么不起作用, 我在终端执行该命令,它工作正常

请帮助:)

1 个答案:

答案 0 :(得分:0)

我仍然对程序的权限持怀疑态度。但是,从这个reference开始,您需要在exec()中指定命令路径。

所以你的代码应该是:

public void stop_all() throws IOException {
   Process p = Runtime.getRuntime().exec("/bin/kill -9 -1");
   System.out.println("killed");
}