Java Runtime.exec (COMMAND) не работает в win2K8 R2 - PullRequest
3 голосов
/ 08 августа 2011

Я создаю процесс, используя следующие 2 строки

Runtime rt = Runtime.getRuntime();
Process p = rt.exec(COMMAND);

, где COMMAND = "program.exe". program.exe находится в системной переменной PATH.

Теперь проблема в том, что это не работает только в Windows 2K8 R2. Он отлично работает на любой другой вид окон (winXP, win2003)

Сообщение об ошибке:

java.io.IOException: Cannot run program "program.exe": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)

1 Ответ

1 голос
/ 19 августа 2011

Вы можете запустить программу вручную из командной строки.Вы можете запустить программу из родительского процесса, используя полную спецификацию пути.Я бы сказал, что мы можем предположить, что программа работает правильно.

Что еще может отличаться?Может быть, среда, в которой работает родительский процесс?Я бы проверил PATH перед запуском процесса.Вы используете Java.Слишком много программ на Java используют пакетные файлы для запуска процесса JVM.Этот пакетный файл может быть изменен с помощью переменной PATH.

Если это ваша программа, а пакетный файл не задействован, я проверю текущий рабочий каталог при запуске родительской программы.Это может повлиять и на то, что будет найдено во время выполнения.

...