Javaのターミナルで実行できるコマンドの実行方法

シド

ですから、Javaプログラムのcmdで実行できるコマンドを実行したいと思います。いくつかの研究をした後、私はこれを行う方法を見つけたと思いました。しかし、私のコードは機能しません。

私のコードは

import java.io.*;

public class CmdTest {
    public static void main(String[] args) throws Exception {
        String[] command = {"ag","startTimes conf.js >> pro.txt"};
        ProcessBuilder builder = new ProcessBuilder(command);
        builder.directory(new File("./test-java/"));
        Process p = builder.start();
    }
}

プログラムは実行されますが、出力は生成されません。「ls-a」のような他のコマンドを使用しようとしましたが、それでも出力がありません。

誰かが私がこれをデバッグするのを手伝ったり、これを行うためのより良い方法を提案したりできますか?ありがとうございました

編集1:私はこれをMacで実行しています。デバッグに必要な場合

編集2:通常のlsおよびその他のコマンドは、皆さんが提供したソリューションで機能します。ただし、Javaプログラムでag(the_silver_searcher)コマンドを使用したいと思います。それを試してみると、次のエラーが発生します-

Exception in thread "main" java.io.IOException: Cannot run program "ag startTimes conf.js >> pro.txt": error=2, No such file or directory 
オラフコック

既存の回答は、コードの問題を解決する方法に関する情報を提供しますが、コードが機能しない理由は提供しません。

シェルでプログラムを実行すると、プログラムが実行される前に、シェルによって重要な処理が実行されます。コマンドライン

    String[] command = {"ag","startTimes conf.js >> pro.txt"};
    ProcessBuilder builder = new ProcessBuilder(command);

コマンドag単一の引数で実行されることを前提としていますstartTimes conf.js >> pro.txt-おそらくあなたがやりたいことではありません。さらに一歩進んでみましょう:あなたが書いたらどうしますか

    String[] command = {"ag","startTimes", "conf.js", ">>", "pro.txt"};
    ProcessBuilder builder = new ProcessBuilder(command);

これは、ことを前提としていますagコマンドが知っている>>その出力をリダイレクトするようにパラメータ-と、ここでシェルの出番です:>>オペレータが命令であるシェルに伝える、それをプロセスの標準出力からの出力をどうしますか。プロセスagは、シェルによって開始されたとき、このリダイレクトの概念をまったく持っておらず>>、ターゲットファイル名についての手がかりをまったく持っていません

この情報を使用して、他の回答のコードサンプルを使用してください。適切な帰属のためにそれらを私のものにコピーすることはしません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Jupyterでforループのターミナルコマンドを実行する

分類Dev

ターミナルで実行されている実際のコマンドを見つける方法

分類Dev

Linuxのターミナルで実行可能なコマンドをループする方法は?

分類Dev

AndroidStudioでターミナルコマンドを実行する

分類Dev

macosコマンドターミナルでtestngを実行する方法

分類Dev

JavaからターミナルでLinuxコマンドを実行する

分類Dev

特定のディレクトリでコマンドを実行して、Windows ターミナル ウィンドウで実行する方法

分類Dev

現在のターミナルで新しいタブを開き、コマンドを渡して新しいタブで実行するコマンド

分類Dev

このコマンドをターミナルでのみ実行でき、スタートアップコマンドや[コマンドの実行GUI]ボックスでは実行できないのはなぜですか?

分類Dev

ターミナルでコマンドを実行した後、別のコマンドを実行できないことがあります

分類Dev

ターミナルでコマンドを実行した後、別のコマンドを実行できないことがあります

分類Dev

gnomeターミナルで一部のコマンドを実行できません

分類Dev

UNIXターミナルのすべてのウィンドウで同じコマンドを実行する

分類Dev

ターミナルコマンドの実行時にファイルにアクセスできません

分類Dev

ターミナルを開くときに特定のコマンドを実行する方法

分類Dev

ターミナルコマンドを実行し、MacでJavaを介して出力を出力する方法

分類Dev

別の(新しい)ターミナルウィンドウでコマンドを実行する

分類Dev

bashからターミナルウィンドウで複数のコマンドを実行する

分類Dev

Pythonのターミナルコマンドに対して「>」を実行できません

分類Dev

ターミナルと2つのバージョンのjdkで「java」、「javac」などのコマンドを直接実行できませんか?

分類Dev

私のUbuntuターミナルコマンドはPythonで実行されているようです

分類Dev

Javaコードからターミナルコマンドを実行できません

分類Dev

ターミナルなしでコマンドを実行

分類Dev

ターミナルなしでコマンドを実行

分類Dev

vimでターミナルを開き、Windowsのこのターミナル内でコマンドを実行します

分類Dev

nodejsとのさまざまなセッションでターミナルコマンドを実行する

分類Dev

ターミナルでコマンドを実行するためのショートカット

分類Dev

起動時のターミナルコマンド実行

分類Dev

Javaは「|」でdebianターミナルコマンドを実行します

Related 関連記事

  1. 1

    Jupyterでforループのターミナルコマンドを実行する

  2. 2

    ターミナルで実行されている実際のコマンドを見つける方法

  3. 3

    Linuxのターミナルで実行可能なコマンドをループする方法は?

  4. 4

    AndroidStudioでターミナルコマンドを実行する

  5. 5

    macosコマンドターミナルでtestngを実行する方法

  6. 6

    JavaからターミナルでLinuxコマンドを実行する

  7. 7

    特定のディレクトリでコマンドを実行して、Windows ターミナル ウィンドウで実行する方法

  8. 8

    現在のターミナルで新しいタブを開き、コマンドを渡して新しいタブで実行するコマンド

  9. 9

    このコマンドをターミナルでのみ実行でき、スタートアップコマンドや[コマンドの実行GUI]ボックスでは実行できないのはなぜですか?

  10. 10

    ターミナルでコマンドを実行した後、別のコマンドを実行できないことがあります

  11. 11

    ターミナルでコマンドを実行した後、別のコマンドを実行できないことがあります

  12. 12

    gnomeターミナルで一部のコマンドを実行できません

  13. 13

    UNIXターミナルのすべてのウィンドウで同じコマンドを実行する

  14. 14

    ターミナルコマンドの実行時にファイルにアクセスできません

  15. 15

    ターミナルを開くときに特定のコマンドを実行する方法

  16. 16

    ターミナルコマンドを実行し、MacでJavaを介して出力を出力する方法

  17. 17

    別の(新しい)ターミナルウィンドウでコマンドを実行する

  18. 18

    bashからターミナルウィンドウで複数のコマンドを実行する

  19. 19

    Pythonのターミナルコマンドに対して「>」を実行できません

  20. 20

    ターミナルと2つのバージョンのjdkで「java」、「javac」などのコマンドを直接実行できませんか?

  21. 21

    私のUbuntuターミナルコマンドはPythonで実行されているようです

  22. 22

    Javaコードからターミナルコマンドを実行できません

  23. 23

    ターミナルなしでコマンドを実行

  24. 24

    ターミナルなしでコマンドを実行

  25. 25

    vimでターミナルを開き、Windowsのこのターミナル内でコマンドを実行します

  26. 26

    nodejsとのさまざまなセッションでターミナルコマンドを実行する

  27. 27

    ターミナルでコマンドを実行するためのショートカット

  28. 28

    起動時のターミナルコマンド実行

  29. 29

    Javaは「|」でdebianターミナルコマンドを実行します

ホットタグ

アーカイブ