2011-01-07 2 views
1

Я вызов файла build.bat с помощью этогоНевозможно закрыть окно командной строки после выполнения пакетного файла с помощью Java

rt.exec(new String[]{"cmd.exe","/C","start", "/MIN","build.bat"}); 

Этой строки открывает командную строку. Сборка выполнена успешно, но окно остается открытым. Как его закрыть? Пробовал уничтожить процесс и другие методы System.ext. no use

ответ

2

В ваших аргументах не нужно использовать start /MIN. Вы пробовали это?

rt.exec(new String[]{"cmd.exe","/C","build.bat"}); 
+0

Я пробовал это. С этой опцией сборка не выполняется. –

+0

Да, интересно. Если это так, я подозреваю, что это что-то с вашим файлом bat. 'START', по сути, породит новый cmd.exe-процесс (который не выходит), а'/C' выйдет из того, который вы породили. Вы можете попробовать добавить некоторые записи в пакетный файл и посмотреть, как далеко он продвигается. –

1

в конце летучей мыши файл добавить exit, также нет необходимости добавлять cmd вперед вы можете напрямую выполнить битой

+0

Я попытался добавить выход в конце файла bat. Нет помощи.Как я могу вызвать файл bat без использования опции «cmd»? –

+0

только прямо 'rt.exec (new String [] {" C: \\ path \\ build.bat "});' –

+0

@JigarJoshi Мой командный файл не закрывает окно командной строки, когда java-приложение выдает исключение. добавлен выход в конце. – happy

-1

Просто обновить партию (.bat) файл с новой строки и введите в том, что новый line: exit.

+0

Уже предложено. Прочитайте предыдущие ответы и комментарии перед публикацией. – Avik

1
writer.write("expdp greenbuds/greenbuds directory=backup dumpfile="+dd+".dump logfile="+dd+".log"); 
writer.newLine(); 
writer.write("Exit"); 
+0

Добро пожаловать в переполнение стека! Не могли бы вы добавить некоторые рассказы, чтобы объяснить, почему этот код работает, и что делает его ответом на вопрос? Это было бы очень полезно для человека, задающего вопрос, и любого другого, кто приходит. –

0

Это fix I found on StackOverflow, для закрытия командной строки, после выполнения программы с помощью пакетных файлов.

Вместо: начать "некоторые программы путь"

сделать это: старт "" "некоторые программы путь"

работает для меня под Windows XP.

1

Я только начинал здесь в SO, так что не мог upvote ответ @Franci Penov как правильно:

rt.exec(new String[]{"cmd.exe","/C","build.bat"}); 

или просто,

rt.exec("cmd.exe /C build.bat"); 

не должен принести командную строку. build.bat будет выполняться без головы.


Предположим, вы хотите, чтобы открыть окно командной строки, а build.bat это работает (так что вы можете увидеть выход прямо из командной строки вместо обработки его позже), и хотите командной строки, чтобы уйти после того, как build.bat закончили выполнение, вы можете использовать следующее:

rt.exec("cmd.exe /C start cmd.exe /C batch.bat"); 

start начинается (видимый) окно командной строки для обработки и отображения вывода cmd.exe /C batch.bat. Если у вас есть pause в конце вашего batch.bat, то все, что вам нужно сделать, это нажать клавишу, и командная строка исчезнет без необходимости вводить exit в окне подсказки, чтобы закрыть ее.

Возможно, это не то, что вам нужно, но я искал SO, но потом сам выяснил решение. Просто чтобы поделиться им.

+1

Спасибо вам большое! После открытия 20 вкладок и часов, вторая часть вашего ответа - это решение, в котором я нуждался! Огромное спасибо!! – Hamsterrific

Смежные вопросы