web-dev-qa-db-ja.com

java.io.IOException:プログラム "dir"を実行できません:CreateProcess error = 2、Das System

こんにちは私はEclipseで次のcmdコードを実行しようとしています:

 "DIR \""+DEV_HOME+"\\src\"\\*.Java /b /s >> \""+DEV_HOME+"\\bin\\javaFiles.txt\""

明らかに、次のようになります。

DIR "D:\Thomas\Dokumente\Daten\workspace\WBRLight\src"\*.Java /b /s >> "D:\Thomas\Dokumente\Daten\workspace\WBRLight\bin\javaFiles.txt"

しかし、次のエラーメッセージが表示されます。

Java.io.IOException: Cannot run program "dir": CreateProcess error=2, Das System kann die angegebene Datei nicht finden
at Java.lang.ProcessBuilder.start(ProcessBuilder.Java:1041)
at Java.lang.Runtime.exec(Runtime.Java:617)
at Java.lang.Runtime.exec(Runtime.Java:450)
....

コマンドボックスのコードを使おうとすると、正常に動作します。私のコード:

    public void run_cmdLine(String command) {
    try {
        Runtime rt = Runtime.getRuntime();
        BufferedReader input = null;
        Process pr = null;

        pr = rt.exec(command);
        input = new BufferedReader(new inputStreamReader(pr.getInputStream()));

        String line = null;

        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }

        int exitVal = pr.waitFor();
        System.out.println("Exited with error code " + exitVal);

    } catch (Exception e) {
        System.out.println(e.toString());
        e.printStackTrace();
    }
}
11
user2889693

追加 "cmd.exe /c"コマンド文字列の先頭で、それでうまくいくはずです。

編集/cパラメータは、cmdを終了させて​​Javaプロセスに戻します。これがないと、プロセスはハングします。

12