Я недавно переместил свою студию от Подрывной деятельности до По необходимости и поместил некоторые примечания об этом, вид вскрытия, на моем блоге здесь . Надежда это полезно.
Вам нужно запускать Ant через его .bat-файл? Это просто java-программа, вы можете просто выполнить ее внутри виртуальной машины, напрямую создав и выполнив среду выполнения Ant. Загляните внутрь ant.bat, посмотрите, что это за класс Main, и выполните его напрямую.
Я решил эту проблему, создав два дополнительных пакетных файла (не очень хорошо, но работает):
Содержимое файла myant.bat
:
call ant2.bat %*
Содержимое файла ant2.bat
:
call ant.bat %*
if errorlevel 1 (goto ERROR_EXIT)
exit /B 0
:ERROR_EXIT
exit /B 1
Теперь я могу вызвать myant.bat
как процесс
из java, и я получаю правильное значение выхода.
Извините, я не могу сказать , почему это работает. Это просто результат множества попыток.
Это давняя проблема для старых версий Ant в Windows. Я считаю, что он был исправлен в версии 1.7.0.
См. эту ошибку для получения подробной информации и это обсуждение , чтобы узнать о подходе к ее устранению.
Я зашел в эту тему и нашел ответ tangens, который почти решил мою проблему: код выхода всегда 0 на Windows из ant.bat
, даже когда я намеренно провалил сборку ant; мне нужно получить код выхода из скрипта сборки TFS, и он показал, что даже %ERRORLEVEL%
не может быть найден в сборке TFS.
Однако, я должен удалить /B
из строк exit
, иначе, он все еще всегда показывает мне код выхода 0.