Подскажите, как можно реализовать автоматическое обновление программы? По типу firefox. Если имеет значение — язык программирования Java. Можно просто привести ссылки, или общую методику.
ну да, если это бирарники программы, то лучше их так не обновлять по известным причинам. А если дата файлы, то просто скачивай как квейк делает например.
могу предложить следующий вариант (примерно так происходило обновление ПО в одной железяки, софт для которой мне довелось мантейнить...)
Загружаем по сети новые версии бинарей, складываем их в какой-либо каталог нашего ПО... а дальше два пути:
1) у нас есть каталог bin, есть каталог updates, есть стартовый скрипт, через который запускается приложение. Скрипт при запуске смотрит, есть ли что-нить в каталоге updates, если есть, то он бэкапит те же файлы из bin, и перезаписывает их файлами из updates (после чего updates очищается). После всей этой процедуры уже запускается приложение.
2) можно обойтись и без стартового скрипта, его фунцию будет выполнять наш главный исполняемый файл, при старте, он проверяет наличие обновлений, бэкапит и перезаписывает нужные файлы, а потом продолжает работу. Тут может возникнуть вопрос, а как обновить сам запускаемый бинарь, тут может быть много вариантов, один из них - есть маленькая утилита, которую запускает наш главный бинарь и вырубается, эта утелитка уже перезаписывает главный бинарь, и запускает его.
Ну вот как-то так... в нашем софте было немного иначе, так как там это была "прошивка", там просто было две области памяти current и backup, и была метка, в которой указывалось, какая область сейчас собсно current, а какая backup, при апгрейде, перезаписывался бэкап, а метки менялись местами, и соответственно бывший карент становился бэкапом, а бэкап новым карентом :)
В любом случае подумай, что-то из мной описанного вполне сгодиться я думаю.
А вообще, если руками, то всё просто, если надо обновлять при перезапуске. Если требуется «горячее» обновление, то уже хитрее, надо с ClassLoader-ами шаманить.