Это не обязательно лучший способ, но он может сработать для вас.
Вы можете написать приложение для начальной загрузки (как лаунчер World of Warcraft, если вы играли в WoW). Этот бутстрап отвечает за проверку обновлений.
- Если обновление доступно, оно предложит его пользователю, выполнит загрузку, установку и т. Д.
- Если приложение обновлено, это позволит пользователю запустить приложение.
- При желании вы можете разрешить пользователю запускать приложение, даже если оно не обновлено.
Таким образом, вам не нужно беспокоиться о принудительном выходе из вашего приложения.
Если ваше приложение является веб-приложением и важно, чтобы у него был актуальный клиент, вы также можете выполнять проверку версии во время работы приложения. Вы можете выполнять их через определенные промежутки времени, выполняя обычную связь с сервером (некоторые или все вызовы) или и то, и другое.
Для продукта, над которым я недавно работал, мы выполняли проверку версии при запуске (без приложения загрузочного ремня, но до появления главного окна) и во время обращений к серверу. Когда клиент устарел, мы полагались на то, что пользователь завершит работу вручную, но запрещали любые действия против сервера.
Обратите внимание, что я не знаю, может ли Java вызывать код пользовательского интерфейса до того, как вы откроете главное окно. Мы использовали C # / WPF.