Как я выполняю пакетный файл из своего JAVA-приложения?

Я думаю, вы должны идти этим путем, прежде чем отправлять его в JSON.

$params['body']['query']['filtered']['filter']['bool']['must'][0]["term"]['pprCategories']= "category1";
$params['body']['query']['filtered']['filter']['bool']['must'][1]["term"]['country_name']= "country1";
$params['body']['query']['filtered']['filter']['bool']['must'][2]["term"]['population_name']= "population1";
$params['body']['query']['filtered']['filter']['bool']['must'][3]["term"]['kilometers_amount']= "55145";
104
задан Nathan 7 August 2017 в 22:48
поделиться

3 ответа

Пакетные файлы не являются исполняемым файлом. Им нужно приложение для выполнения их (т.е. cmd).

На UNIX, файл сценария имеет хижину (#!) в начале файла для определения программы, которая выполняет его. Двойной щелчок в Windows выполняется Windows Explorer. CreateProcess ничего не знает об этом.

Runtime.
   getRuntime().
   exec("cmd /c start \"\" build.bat");

Примечание: С эти start \"\" команда, отдельное окно команд будет открыто с пустым заголовком, и любой вывод от пакетного файла будет отображен там. Это должно также работать только с 'cmd/c build.bat", в этом случае вывод может быть считан из подпроцесса в Java при желании.

168
ответ дан Nathan 24 November 2019 в 04:07
поделиться

ProcessBuilder является Java 5/6 способ выполнить внешние процессы.

12
ответ дан basszero 24 November 2019 в 04:07
поделиться

Исполняемый файл, используемый для выполнения сценариев пакетной обработки, cmd.exe, который использует эти /c флаг для определения названия пакетного файла для выполнения:

Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "build.bat"});

Теоретически необходимо также быть в состоянии выполнить Scons этим способом, хотя я не протестировал это:

Runtime.getRuntime().exec(new String[]{"scons", "-Q", "implicit-deps-changed", "build\file_load_type", "export\file_load_type"});

РЕДАКТИРОВАНИЕ: Амара, Вы говорите, что это не работает. Ошибка, которую Вы перечислили, является ошибкой, которую Вы получили бы когда рабочий Java от терминала Cygwin на поле Windows; это то, что Вы делаете? Проблема с этим состоит в том, что Windows и Cygwin имеют различные пути, таким образом, версия Windows Java не найдет исполняемый файл сканирований на Вашем пути Cygwin. Я могу объяснить далее, оказывается ли это Вашей проблемой.

10
ответ дан Eli Courtwright 24 November 2019 в 04:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: