выйти из командного файла после запуска с использованием Java - PullRequest
2 голосов
/ 02 марта 2009

Я знаю, как запустить командный файл, используя код Java. Когда я запускаю командную строку, открывается командная строка. Чтобы закрыть командную строку, я использую taskill / im cmd.exe. но проблема в том, что командная строка, которая используется для запуска jboss, также закрыта. Я хочу убить CMD с определенным идентификатором процесса. Как я могу получить идентификатор процесса конкретного приглашения cmd и убить его с помощью Java

Ответы [ 6 ]

3 голосов
/ 02 марта 2009

вы не можете добавить exit к вашему пакетному файлу, чтобы выйти из его собственной командной строки. Uisng Taskill, кажется, излишне просто закрыть одну командную строку, не так ли?

PS: я никогда не работал над пакетными файлами, только из командной строки, поэтому я предполагаю, что он принимает те же команды.

3 голосов
/ 02 марта 2009

Запустите командный файл с cmd.exe /c job.bat. Переключатель /c выполняет команду и затем завершает интерпретатор команд.

2 голосов
/ 16 февраля 2012

Вот решение, которое работает: чтобы закрыть командное окно после выполнения команд из пакетного (.bat) файла, вам нужно добавить «выход» (без кавычек) в новую строку вашего пакетного файла. Если вы хотите отложить выполнение, это способ, и он работает:

public class TestSleep 
{
    public static void main ( String [ ] args ) 
    {
         System.out.println("Do this stuff");
         try 
         { 
            Thread.currentThread().sleep(3000); 
         }
         catch ( Exception e ) { }
         System.out.println("Now do everything after this");
     } 
}

Приветствия

1 голос
/ 02 марта 2009

Если вы запустите командный файл с помощью Runtime.exec (), он вернет вам объект Process. Вызов метода destroy () убьет этот процесс.

0 голосов
/ 02 декабря 2010

Хотя это кажется старым вопросом и, вероятно, решен .. Я долго боролся с одним и тем же .. Наконец-то это работает

String command = "cmd.exe /c build.bat";
Runtime rt = Runtime().getRuntime();
Process pr = rt.exec(command);
0 голосов
/ 28 января 2010

У меня тоже была такая же проблема. Я впервые использовал как

Runtime.getRuntime().exec("cmd.exe start /c test.bat");

Тогда я попытался, как показано ниже. Работает нормально.

Runtime.getRuntime().exec("cmd.exe /c start test.bat");

Попробуйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...