Как закрыть командные окна с Java - PullRequest
1 голос
/ 06 марта 2009

Каждый раз, когда я использую Runtime.exec("cmd /c start...."), я открываю окно cmd. Я хотел бы создать более бесшовное приложение, закрыв каждое предыдущее окно cmd. Как я могу это сделать?

Если кто-нибудь знает, как лучше выполнять серию команд в одном и том же окне cmd, чем открывать новые при каждом выполнении команды, пожалуйста, дайте мне знать.

Ответы [ 3 ]

8 голосов
/ 06 марта 2009

Не использовать старт, который открывает другое окно

Заменить:

Runtime.exec("cmd /c start....")

с:

Runtime.exec("cmd /c ....")
2 голосов
/ 06 марта 2009

зачем вам cmd windows?

Я бы запускал команду непосредственно в Java, захватывал выходные данные и отображал их в локальном окне (если это вообще необходимо).

Просто убедитесь, что вы используете весь вывод программы или она может зависнуть. Также не забудьте закрыть потоки stdout, stderr и stdin, иначе могут возникнуть утечки некоторых файловых дескрипторов (ну, это верно для некоторых JDK в некоторых ОС Unix ... Windows, кто знает).

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

Вы не можете управлять открытыми окнами из Java. Но я предлагаю вам два решения:

Первый

Runtime.exec("cmd /c start /MIN ...")

Параметр / MIN запретит отображение окон.

Второй : поместите все приложения, которые вы должны вызвать, в один пакетный файл и вызовите его один раз. : -)

...