Запустите файл .bat при закрытии Java-приложения. - PullRequest
2 голосов
/ 14 апреля 2010

Я хочу запустить файл .bat при закрытии приложения Java.

Я пытаюсь, но когда я закрываю приложение Java, файл bat не запускается.

Ответы [ 4 ]

4 голосов
/ 14 апреля 2010

Возможно, вы захотите заглянуть в ловушку отключения. По сути, вы можете зарегистрировать незапущенный поток, он будет запущен JVM при запуске процесса выхода.

Runtime.getRuntime().addShutdownHook(thread)

Согласно документу:

Виртуальная машина Java отключается в ответ на два вида событий:

  • Программа завершается нормально, когда завершается последний поток, не являющийся демоном, или когда вызывается метод выхода (эквивалентно System.exit), или
  • Виртуальная машина прерывается в ответ на пользовательское прерывание, такое как ввод ^ C, или общесистемное событие, такое как выход пользователя из системы или выключение системы.
1 голос
/ 14 апреля 2010

Я могу придумать два варианта.

  1. Запустите приложение Java из одного пакетного файла или файла ant, а затем автоматически запустите другое, когда вы закончите.
  2. Перехватывать, когда ваше приложение закрывается с использованием кода Java, а затем запустить пакетный файл, работающий на Java, в качестве подпроцесса Вероятно, вам придется использовать специфичные для Windows методы, чтобы он продолжал работать после выхода, если вы не хотите заставлять ваше приложение ждать.

Только 1 будет работать, если ваш процесс убит. Как вы пытаетесь сделать это в данный момент, и как это терпит неудачу? Без этой информации мы не сможем вам помочь.

0 голосов
/ 14 апреля 2010

Если ваше приложение является приложением для настольного компьютера с расширением SingleFrameApplication, вы можете переопределить его метод выхода: public void exit(EventObject event) и добавить код для запуска вашего файла.

0 голосов
/ 14 апреля 2010

Пожалуйста, пройдите через это http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html. Используйте Runtime.getRuntime (). AddShutdownHook (thread), чтобы связать его.

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