2016-02-26 2 views
0

Что действительно нужно, это Java приложение, которое проверяет наличие новых обновлений из XML или TXT файл из Интернета, который показывает файлы, которые были обновлены, как в следующем:Java само обновление приложений

V.1.0.5 
class1.java 
img/img1.jpg 

V.1.0.6 
class1.java 
class3.java 
class4.java 

The App , Следует проверить обновление от его текущей версии до последнего и составить список обновленных файлов, в этом случае должна быть:

class1.java 
img/img1.jpg 
class3.java 
class4.java 

приложение должен затем загрузить эти файлы с помощью ссылки, как: http://webadress.com/appfiles/XXXXXXX где XXXXXXX является имя файла.

Основная проблема, с которой я столкнулся, заключается в том, как приложение может загружать и заменять эти файлы в одном JAR-файле приложения.

Я подумал о загрузочном устройстве (приложение SecondP, которое запускает основное приложение и проверяет наличие обновлений, но не может заставить его работать, так как это должно Извлечь основной контейнер приложения заменить и загрузить новые файлы обновлений заново архивировать файлы в одном файле jar и запускать его.

Просто то, что мне действительно нужно, это приложение, которое может обновлять его самостоятельно по файлам, не заменяя весь файл jar, поскольку пропускная способность действительно огромная.

Большое спасибо за помощь заранее :)

+0

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

+2

У Java уже есть средство для этого, и это часть каждой установки Java: [Java Web Start] (http://docs.oracle.com/javase/8/docs/technotes/guides/javaws/). (Почему у этого есть тег 'ant'?) – VGR

+0

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

ответ

0

Вам нужны две отдельные программы в двух отдельных JVM s: ваша программа и программа обновления. Обновитель (возможно, по запросу пользователя) проверяет, что следует загружать, загружает файлы и затем предупреждает пользователя.

Пользователь, чем сохраняет свою работу, закрывает приложение и сообщает обновителю, чтобы он исправлял двоичные файлы приложений, например, заменяя JAR, обновляя базы данных и/или файлы конфигурации, символические ссылки и многое другое.

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

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