Не забывайте, что:
означает, что Win32 CreateProcess
возвращает 2 как код ошибки, когда не может найти указанную вами команду; более конкретно, когда команда не ссылается на исполняемый файл в пути поиска.
Посмотрите на этот SO вопрос , чтобы получить более полный код "Runtime.getRuntime().exec()
", а также этот фрагмент .
Этот код создает оболочку (как в Runtime.getRuntime().exec("cmd /K")
), в которой вы пишете sdtin
любую команду, которую хотите выполнить.
Интерес этого подхода состоит в том, чтобы повторно использовать процесс оболочки, чтобы извлечь выгоду из предыдущей команды: если вы выполните 'cd
', а затем выполните 'dir
', последняя команда отобразит содержимое каталога на который ссылается команда cd
.
То же самое будет верно для PATH
настроек, непосредственно перед использованием javac
или java
.