通过java代码运行java程序

时间:2013-10-09 16:39:00

标签: java ubuntu process system-calls java-communication-api

我在Linux / Ubuntu工作。我想通过我的java代码运行一个进程,如下所示

ProcessBuilder pb = new ProcessBuilder("/usr/lib/flume-ng/bin/flume-ng", 
                                       "agent", 
                                       "-f", 
                                       "/home/c4/Flume/New/ClientAgent.config",
                                       "-n", 
                                       "clientAgent");
    pb.start();

但我得到unreported exception java.io.IOException; must be caught or declared to be thrown pb.start();作为错误输出。请告诉我如何运行我的流程。感谢。

2 个答案:

答案 0 :(得分:4)

它告诉你start()方法可以抛出异常,you have to deal with it。你可以:

  1. 抓住并记录或处理它,或
  2. 将您的方法声明为可能抛出此异常,并让堆栈上方的方法处理它(使用这两个选项)
  3. Exception对象被检查,这意味着编译器关注它,你需要也是如此(无论多么痛苦)。其他例外是​​未选中,这意味着您不必担心。编译器也不会担心(例如OutOfMemoryError - 请注意我在这里混合了一些异常术语,因为它有点复杂)。

答案 1 :(得分:2)

由于IOException已检查例外,您需要catch

try {
    pb.start();
} catch (IOException e) {
    e.printStackTrace();
}

throw声明了封闭方法。

public void yourMethod() throws IOException {