在Java中,如何执行带有选项的linux程序,如下所示:

ls -a(选项为-a),

另一个:./myscript name=john age=24

我知道如何执行命令,但是无法执行该选项。

最佳答案

您需要执行一个外部过程,看看ProcessBuilder,仅仅因为它几乎可以回答您的问题,Using ProcessBuilder to Make System Calls

用示例更新

我从清单示例中直接摘下来并进行了修改,以便可以在PC上进行测试,并且运行正常

private static void copy(InputStream in, OutputStream out) throws IOException {
    while (true) {
        int c = in.read();
        if (c == -1) {
            break;
        }
        out.write((char) c);
    }
}

public static void main(String[] args) throws IOException, InterruptedException {

//        if (args.length == 0) {
//            System.out.println("You must supply at least one argument.");
//            return;
//        }

    args = new String[] {"cmd", "/c", "dir", "C:\\"};

    ProcessBuilder processBuilder = new ProcessBuilder(args);
    processBuilder.redirectErrorStream(true);

    Process process = processBuilder.start();
    copy(process.getInputStream(), System.out);
    process.waitFor();
    System.out.println("Exit Status : " + process.exitValue());
}

关于java - Java-执行带有选项的程序,例如ls -l,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11893469/

10-17 02:29