Как остановить работающий файл * .JAR с помощью пакетного скрипта? - PullRequest
2 голосов
/ 14 октября 2009

Мы сталкиваемся с проблемой перезапуска, закрывая работающий файл * .JAR started with the "java -cp".

Убийство java.exe работало нормально.

Но ... нет ли более плавного способа применения? (Сохраняет данные при выключении)

Кроме того, как можно имитировать ввод любой клавиши в следующем сообщении "Enter any key to continue..." с помощью командного файла?

Спасибо за помощь!

Ответы [ 5 ]

9 голосов
/ 23 октября 2009

Следующий набор пакетных сценариев может использоваться для запуска / остановки jar / любой программы

старт-jar.bat

start "win_title" java -jar [jar file] [jar options]

это в основном запускает ваш jar (программу) в окне с заголовком, установленным в "win_title".

Вы можете использовать другую партию, чтобы убить начатое окно

стоп-jar.bat

TASKKILL /FI "WINDOWTITLE eq win_title
0 голосов
/ 23 октября 2009

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

из вопросов и ответов по ссылке:

Хорошо, но мне не придется писать много кода, чтобы зарегистрировать простую ловушку выключения?

Нет. Простые перехватчики завершения часто могут быть записаны как анонимные внутренние классы, как в этом примере:

Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() { database.close(); }
});
0 голосов
/ 23 октября 2009

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

0 голосов
/ 14 октября 2009

Превосходный Java Service Wrapper позволит вам без труда установить обработчики сигналов для вашего Java-приложения.

0 голосов
/ 14 октября 2009

Используйте PAUSE [сообщение], чтобы дождаться нажатия клавиши:

PAUSE Hit any key to continue..

Что касается уничтожения вашего приложения, есть JMX способы сделать это, но я нахожу простой способ прослушивания сокета через локальный порт, а затем вы можете легко отправить на него команду kill kill и позволить вашей программе справиться с завершением работы .

...