Как я могу сделать программу Java, которая может обновить себя. Я делаю эту программу для использования в небольшой команде. Мне не нужны какие-либо дополнительные функции. Мне просто нужно простое и минимальное решение.Как написать программу самообновления в Java?
ответ
Java Web Start предназначен специально для этого. Вы отправляете один файл jnlp, а java заботится о получении последней версии с сервера.
Кроме того, вы можете загрузить обновленные классы и заменить их во время выполнения.
Следует отметить, что приложения, которые (неоднократно) загружают обновленные классы во время работы, имеют тенденцию к утечке памяти пермг. Вы можете избежать утечек, но это не просто. –
Да, их лучше перезапускать время от времени. – Bozho
Что вы подразумеваете под самообновлением?
Если вы имеете в виду, что он меняет свое поведение во время выполнения (что редко), вы можете создать код, который записывает java-код, компилирует его и загружает изнутри запущенной программы. Я видел это.
Более распространенный сценарий - иметь базовую программу с плагинами, где сами плагины могут быть обновлены во время выполнения. Самый простой способ сделать это - просто использовать интерфейсы для этих сервисов, а затем загружать экземпляры этих типов во время выполнения. Тем не менее, создание полностью надежной платформы плагинов обычно заново изобретает колесо. Существует много существующих архитектур, таких как OSGi.
Мне нужно уточнить, что вы подразумеваете под самообновлением. Это довольно загруженный и двусмысленный термин. – Uri
Да: вы имеете в виду программу, которая пишет самоисполняемый код или программу, которая загружает новую версию? –
Извините за этот термин ambiguos. Это просто как функция обновления Firefox. Он автоматически проверяет обновления через Интернет и обновляет текущую версию. Я стараюсь сделать небольшую утилиту для своей команды и распределить ее в команде. Это обычное приложение для рабочего стола. Я также постоянно совершенствую эту программу, но я не хочу снова отправлять эту программу всем. – dmay