В моем приложении Java я хочу запустить командный файл, который вызывает " scons -Q implicit-deps-changed build\file_load_type export\file_load_type
"
Кажется, я даже не могу запустить командный файл. У меня нет идей.
Вот что у меня на Java:
Runtime.
getRuntime().
exec("build.bat", null, new File("."));
Раньше у меня был файл Python Sconscript, который я хотел запустить, но, поскольку это не сработало, я решил, что вызову скрипт через командный файл, но этот метод пока не сработал.
источник
Win+R
(Время выполнения) может выполнять командные файлы напрямую.Иногда время процесса выполнения потока превышает время ожидания потока JVM, это обычно происходит, когда процесс, который вы вызываете, требует некоторого времени для обработки, используйте команду waitFor () следующим образом:
Таким образом, JVM остановится до тех пор, пока процесс, который вы вызываете, не будет выполнен, прежде чем он продолжит работу со стеком выполнения потока.
источник
источник
Чтобы запускать командные файлы с использованием java, если вы об этом ...
Это должно сработать.
источник
ProcessBuilder - это способ Java 5/6 для запуска внешних процессов.
источник
Исполняемый файл, используемый для запуска пакетных скриптов,
cmd.exe
использует/c
флаг для указания имени командного файла для запуска:Теоретически вы также должны иметь возможность запускать Scons таким образом, хотя я этого не тестировал:
РЕДАКТИРОВАТЬ: Амара, вы говорите, что это не работает. Указанная вами ошибка - это ошибка, которую вы получите при запуске Java из терминала Cygwin в Windows; это то, что ты делаешь? Проблема в том, что у Windows и Cygwin разные пути, поэтому версия Java для Windows не найдет исполняемый файл scons на вашем пути Cygwin. Я могу объяснить дальше, если это окажется вашей проблемой.
источник
протестировано с jdk1.5 и jdk1.6
У меня это сработало, надеюсь, это поможет и другим. чтобы получить это, я боролся больше дней. :(
источник
Я была такая же проблема. Однако иногда CMD не запускал мои файлы. Вот почему я создаю temp.bat на своем рабочем столе, затем этот temp.bat будет запускать мой файл, а затем временный файл будет удален.
Я знаю, что это более крупный код, но сработал у меня на 100%, когда даже Runtime.getRuntime (). Exec () не удалось.
источник
Следующее работает нормально:
источник
Этот код выполнит две команды command.bat, которые существуют в пути C: / folder / folder.
источник
Чтобы расширить anwser @ Isha, вы можете просто сделать следующее, чтобы получить возвращенный вывод (пост-факто, а не в реальном времени) запущенного скрипта:
источник