Исключение в потоке "main" java.io.IOException: не удается запустить программу "D: / cygwin / bin / bash": ошибка CreateProcess = 193,% 1 не является допустимым приложением Win32 - PullRequest
2 голосов
/ 06 декабря 2011

Я был в состоянии запустить сценарий оболочки, используя Cygwin в Java.Но сейчас я получаю следующее сообщение.

Exception in thread "main" java.io.IOException: Cannot run program "D:/cygwin/bi
n/bash": CreateProcess error=193, %1 is not a valid Win32 application

Как избежать этого исключения?

Код

{
            String cmd;
            cmd = "D:/cygwin/bin/bash -c'/bin/ls -la'";
            System.out.println("EXECING: " + cmd);
            p = Runtime.getRuntime().exec(cmd);

            in = p.getInputStream();
            br = new BufferedReader(new InputStreamReader(in));
            System.out.println("OUT:");
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

            in = p.getErrorStream();
            br = new BufferedReader(new InputStreamReader(in));
            System.out.println("ERR:");
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

            System.out.println();
}

1 Ответ

1 голос
/ 06 декабря 2011

Как рекомендовано в комментарии, добавление .exe решило бы это, но и удаление файла bash.???.

Был файл с именем bash.??? (я так и не узнал, какое расширение было) втот же каталог, что и bash.exe, и Runtime.exec() пытался его выполнить.

* * * * * * * * * * * * * * * * * * * * * * * * * * '' '' '' * '*' должен был быть создан в некоторый момент после успешного выполнения, следовательно, он работал один раз, а затем потерпел неудачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...