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 には、この種のものを処理するために構築されたライブラリがあります。このようなものを手作業でコーディングする前に、それについて知っていたらよかったのにと思います。後で見つけました。コマンド ライン プログラムのさまざまな形式のオプションを使用します。

アパッチコモンズ CLI

于 2012-08-10T01:01:01.223 に答える