2013-03-15 2 views
0

Я работал над установкой обновления для приложения java .jar. У меня есть несколько jar-архивов и main.jar. Моя пусковая установка добавляет/заменяет необходимые банки при обновлении.Как выглядит соответствующий UpdateLauncher для java?

Я просто не уверен, какие критерии нужно ухаживать. Поэтому я расскажу, как работает этот процесс, и вы можете сказать мне, что я что-то забыл.

  1. нагрузки и сравнить version.xml файл с сервера обновлений FTP
  2. Составьте список обновленных элементов с помощью обоих version.xml файлов
  3. Check (чтобы убедиться), если эти файлы, которые по-прежнему действительные действительно существуют на жестком диске (либо добавьте их в список элементов, которые необходимо загрузить ... в любом случае не должно произойти)
  4. Создайте список файлов, которые необходимо загрузить (эти элементы находятся на сервере в сжатом виде)
  5. Загрузить все необходимые файлы в папку/temp
  6. Распакуйте все файлы/TEMP/распаковывать
  7. Переместить все распакованные файлы в папку/данных (или где они принадлежат)
  8. Обновление локального version.xml
  9. Проверьте, все ли файлы соответствовать фактической версии-file- список

Я действительно не уверен, что я что-то забыл? Если некоторые пользователи возились с файлами в/data, мой обновитель узнает об этом и предлагает «ремонт-обновление», где все отсутствующие файлы перезагружаются. Но как насчет пользователей возиться с version.xml? Я должен хранить это зашифрованное. Необходимо ли сохранить загруженный файл version.xml с сервера обновлений открытым, чтобы никто не мог изменять при проверке версии и обновления? Или я слишком переживаю обо всем этом?

Все это работает до сих пор и достаточно ли безопасно, чтобы не создавать беспорядочные установки на ПК пользователей после патча?

ответ

0

Вы собираетесь использовать класс System Tray из Java 1.6, чтобы уведомить пользователя об обновлении? Для меня, похоже, что-то вроде этого будет involve implementing an OSGi updater (вроде как проект Eclipse делает это в среде IDE). Кроме того, инструмент JVisualVM.exe (который поставляется с JDK) является отличным примером такого рода вещей, и, возможно, вы могли бы получить от этого идеи, хотя я подозреваю, что он закодирован на C++.

+0

Спасибо за ответ. Это не похоже на обновление фона. Это приложение запуска, которое проверяет наличие обновлений при запуске программы, если это необходимо. Я делаю этот проект, чтобы узнать больше о программировании клиент-серверных приложений. И как часть этого, у моего клиента есть updateLauncher. Но я не знаю, как ... «профессионально» мое решение. Где я могу прочитать, как уже существующие решения, такие как равноденствие и другие, выполняют свою работу по обновлению? Я просто хотел бы создать программу обновления с качеством, аналогичным коммерческим продуктам. :) – Ciprian

+0

Я не отличный человек, чтобы спросить об этом. Вы можете подумать о том, чтобы проверить это ядро ​​OSGI на основе Maven: http://karaf.apache.org/. Это немного кривая обучения, но для меня это выглядит современно. – djangofan