Java运行带有选项的程序

时间:2013-05-27 14:45:15

标签: java process runtime.exec

我有这段代码:

try {
    Process p = new ProcessBuilder(
            "/Applications/TorBrowser_en-US.app/Contents/MacOS/./tor",
            "-f /Applications/TorBrowser_en-US.app/Library/filetctor/torrc")
            .start();
    p.waitFor();
    int exitVal = p.exitValue();
    System.out.println("Process exitValue: " + exitVal);
} catch (IOException e) {
    System.out.println(e);
} catch (InterruptedException e) {
    System.out.println(e);
}

每次执行它时,我得到一个255 exitValue。该过程无法正常运行。

如果我只运行程序:

Process p = new ProcessBuilder("/Applications/TorBrowser_en-US.app/Contents/MacOS/./tor").start();

该过程正确运行。但我需要使用-f选项。

有什么问题?我写错了吗?

1 个答案:

答案 0 :(得分:3)

每个参数应该是一个单独的字符串,而不是全部在一个以空格分隔的字符串中。

请参阅the example in the documentation

  

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");