2015-04-08 4 views
12

Я собираюсь написать новое кросс-платформенное приложение, и я выбрал JavaFX, главным образом из-за его богатых библиотек пользовательского интерфейса (как стандартных, так и сторонних) и собственной функции привязки данных. Мое приложение будет развернуто через собственную упаковку, поскольку из-за отсутствия плагина PPAPI Java (Chrome прекратит NPAPI в Chrome 42, который сейчас находится в бета-версии), что помешает пользователю Chrome использовать WebStart и потому, что более «классический», пользовательский интерфейс, поэтому WebStart и автоматические обновления отключены от таблицы.Реализация функции автоматического обновления приложения JavaFX

Сценарий будет следующим:

  1. запуске приложения и проверяет наличие обновлений
  2. Если обновления найдены, загрузить их и поместить их во временную папку
  3. В завершение работы приложения, написать заново загруженных JAR файлы поверх старых
  4. Автоматически перезапускать обновленное приложение

Тем не менее, в моем сознании возникает несколько вопросов (изначально эти два, но я мог бы обновить этот вопрос, как только у меня появилось больше):

  • Безопасно ли это? Я рискую тем, что каким-то образом JVM становится сумасшедшим, если я перезаписываю некоторые JAR, уже используемые в жизненном цикле приложения?
  • Я изо всех сил пытаюсь найти способ автоматического перезапуска приложения JavaFX. Возможно ли это?

Спасибо всем за помощь.

+2

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

+1

Так я сейчас изучаю, более внимательно изучая предварительный загрузчик JavaFX, который может оказаться полезным в этом сценарии. –

ответ

5

Посмотрите на GetDown или UpdateFX. Он реализует загрузочный загрузчик, который проверяет наличие обновлений, загружает их и запускает ваше приложение, как только оно будет обновлено.

+0

Спасибо за ваши предложения. К сожалению, кажется, что ни GetDown, ни UpdateFX не учитывают мои потребности: - UpdateFX: кажется, что это приложение нужно в одном JAR, в то время как у меня есть библиотека, которую я хотел бы носить как отдельные JAR; - GetDown: он выглядит довольно ориентированным на Swing, и я бы хотел использовать чистый курс JavaFX. –

+1

Возможно, вы можете применить принципы ... – keuleJ

1

Возможно, вы можете попробовать install4j, хотя он оплачен. Главной особенностью, которую я люблю больше всего, является автоматическое обновление и то, как вы можете легко настроить установщик (создать Linux - deb, rpm installer, Mac и установщик окон), и даже может упаковать требуемую версию jdk для запуска вашего приложение (это означает, что ваши пользователи не должны иметь, что версия Java установлена, прежде чем использовать приложение)

хотя, это может показаться немного излишним враг ваших потребностей

Смежные вопросы