JavaFX, автообновление приложения

182
20 мая 2018, 05:20

Имеется javaFX приложение, облачное хранилище и mySql бд.

Подскажите пожалуйста как правильно реализовать функционал, при котором приложение по нажатию пользователем кнопки сверяется свою версию(значение зашитое в самом приложении) с версией из бд, и в случае расхождения обновляет себя в рантайме? С чего начать? Не нагуглил ничего толком.

Заранее благодарю.

Answer 1

Два варианта:

  1. Самостоятельное обновление
  2. Использование лаунчера (небольшая программа, главной задачей которой является проверка версии основного приложения, скачивание обновлений, обновление и запуск)

Первая половина в обоих случаях одинаковая:

  • узнать версию (не обязательно из базы)
  • скачать файлы с новой версией, например в папку update. Источник так же может быть различным: ftp, локальная сеть и т.д.

Отличие только в том, где располагается этот код: либо в самом приложении, либо в лаунчере.

Вторая половина уже отличается:

Лаунчер - просто заменить файлы, почистить за собой и запустить (используя стандартные средства Java для работы с файлами).

Само приложение:

  • Определить ОС (Windows, Unix...)
  • Создать скрипт (bat, sh...). Задача скрипта перенести файлы с папки update на основные места файлов приложений. Последняя строка в скрипте - запуск самого приложения с некоторым аргументом (например, -noupdate) (что бы снова обновы не проверял) (Обычное создание файла с некоторым содержимым)
  • Запустить скрип через Runtime.getRuntime().exec

  • Закрыть приложение. (Скрип не будет выполняться, пока приложение открыто, т.к. файлы заняты).

Так же желательно предусмотреть в скрипте команды для сокрытия (например, @echo off).

Запуск приложения без консоли (@start javaw -jar) что бы после запуска приложения не висело консольное окно.

READ ALSO
Как подвинуть ось Оу в JFreeChart

Как подвинуть ось Оу в JFreeChart

Подскажите пожалуйста, как подвинуть ось Oy вправо и добавить отрицание к Ox?

202
Возвращает null при выводе параметров объекта в консоль

Возвращает null при выводе параметров объекта в консоль

Помогите пожалуйста! Надо прочитать файл с логами, сделать из них объект (для дальнейшего сравнения параметров и вывода по параметрам в консоль),...

223
Создание базы данных [требует правки]

Создание базы данных [требует правки]

как создать бд с такой иерархией ? Без лишних папок

192