通过java程序运行进程

时间:2013-10-10 06:37:30

标签: java linux process system-calls

我在java中为Ubuntu环境工作。我想通过java程序执行脚本文件。我试过以下

try{
    Runtime.getRuntime().exec("/usr/lib/flume-ng/bin/flume-ng agent -f /home/c4/Flume/New/ClientAgent.config -n clientAgent");
}
catch(Exception e){
        e.printStackTrace();
    }

并且

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

    }

但是这两个都没有启动我的名为flume-ng的进程,其他是传递给它的参数。 Java程序编译成功,但既不提供异常等也不运行进程。如果我做错了,请指导我。

1 个答案:

答案 0 :(得分:0)

考虑Apache Commons Exec

它提供了可靠的跨平台机制来启动外部流程。

这是最新的javadoc:http://commons.apache.org/proper/commons-exec/apidocs/index.html

这是一个简单的教程:http://commons.apache.org/proper/commons-exec/tutorial.html