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

    ls -a(选项是-a),

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

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

4

2 回答 2

2

您需要执行一个外部进程,看看ProcessBuilder,因为它几乎回答了您的问题,使用 ProcessBuilder 进行系统调用

更新示例

我直接从列表示例中撕下它并对其进行了修改,以便我可以在我的 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());
}
于 2012-08-09T23:36:19.137 回答
1

Apache Commons 有一个库来处理这类事情。我希望在我手动编写这样的代码之前知道它。后来我找到了。它为命令行程序提供各种格式的选项。

Apache Commons CLI

于 2012-08-10T01:01:01.223 回答