1

Apache Commons-execを実行したい:

gitステータス| ヘッド-n1| カット-c13-

しかし、コマンドラインを実行してエラーを出すことはできないようです、何かアイデアはありますか?

CommandLine cmdLine = CommandLine.parse( "git status | head -n1 | cut -c13-" );
DefaultExecutor executor = new DefaultExecutor();
executor.setWorkingDirectory( file );
executor.execute( cmdLine );

エラー:

error: unknown switch `n'
usage: git status [options] [--] <filepattern>...
4

1 に答える 1

4

CommandLine.parseパイプを解釈するためのbashシェルは作成されません。

「 ApacheCommonsExecで起動された実行可能ファイルに文字列引数をパイプする方法」で説明されているように:

|[ここでは、あなたの場合]' git status'コマンドはそれを受け入れないため、パイプ引数()を追加することはできません。
パイプを解釈し、そのコマンドラインをシェルに入力すると特別な処理を行うのはシェル(bashなど)です

ByteArrayInputStreamあるコマンドの出力を別のコマンドにフィードするには、を使用する必要があります。

于 2013-03-14T07:14:57.367 に答える