Каков наилучший способ обновить приложение с сервера? - PullRequest
3 голосов
/ 31 марта 2011

Я ищу решение не для webstart / jnlp.

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

Как я могу это сделать?Я хочу реализовать что-то вроде обновлений JDownloaders.

Спасибо

Ответы [ 2 ]

4 голосов
/ 31 марта 2011

Похоже, вы только что описали, как это сделать. Добавьте функцию обновления, которая проверяет сервер FTP или HTTP и загружает последнюю версию.

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

  1. Когда вы запускаете приложение, скопируйте все файлы jar и библиотеки в какую-либо папку / temp перед их запуском. Затем при загрузке обновления перезаписать файлы в исходном месте. При следующем запуске приложение будет использовать новые файлы.

  2. При запуске приложения сначала запустите программу обновления. Подключите его к серверу и сравните все версии файлов. Он сможет перезаписать любой из файлов приложения, потому что не использует их. Он использует только флягу обновления. Как только это будет сделано, и все будет обновлено, запустите новый процесс из программы обновления с фактическим приложением. Вам также нужно будет вставить некоторый код, чтобы иметь возможность обновить jar-файл обновления. Либо сделайте так, чтобы основное приложение могло обновлять программу обновления, либо используйте первый метод и запустите программу обновления из копии jar программы обновления.

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

Помимо этого, заставить это работать будет много испытаний. Удачи!

2 голосов
/ 31 марта 2011

Взгляните на http://code.google.com/p/getdown/

В соответствии с этот вопрос о stackoverflow кажется жизнеспособной альтернативой для запуска в Интернете (по крайней мере, стоит взглянуть).

...