«Автоматические обновления» для Java (настольного) приложения?

Какую систему вы рекомендуете для реализации «автоматических обновлений» для некоторых java (настольных) приложений? Я также хотел бы установить и обновить модуль / плагин. Вспомните Eclipse и Firefox.

Я знаю о материалах OSGi Eclipse RCP, а также о NetBeans RCP здесь есть кое-что. Нужно ли полностью покупать соответствующие материалы RCP, чтобы использовать свои модули и системы автоматического обновления?

Есть ли другие варианты?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
27
0
17 470
4

Ответы 4

Вы смотрели Запуск Java Web? Он проверяет наличие обновленного модуля на сервере и загружает его только в случае необходимости, в противном случае все кэшируется локально на клиентском ПК и запускается оттуда.

Я не совсем считаю, что Java Web Start является здесь ответом. Предположим, что это большое приложение - близко к «контейнеру» приложения, подобному Eclipse (IDE) и подобному Firefox.

stolsvik 20.11.2008 19:06

Почему размер может быть проблемой ??

Tom Hawtin - tackline 20.11.2008 21:00

Веб-запуск в порядке, но имеет много странных проблем. особенно если вы устанавливаете несколько версий или одну и ту же версию несколько раз (что не редкость для разработчиков / QA), и многие вещи приходилось переходить в программу просмотра кеша и т. д.

John Gardner 20.11.2008 21:25

Кроме того, если вы используете веб-запуск, пользователь всегда может включить консоль Java, поэтому будьте осторожны с тем, что вы отправляете в потоки System.out / err.

John Gardner 20.11.2008 21:26

@Tackline: Я думал, что WebStart предназначен в основном для вещей, которые изначально запускались с веб-страницы, и имел характеристики довольно монолитного, «единого» приложения. Я говорю о модульной системе, хотя и с ядром, которое также необходимо обновлять.

stolsvik 21.11.2008 11:54

Проблема с JWS - это менеджер безопасности. Он строже обычного.

guerda 16.12.2008 15:59

с динамическим jnlp не уверен, что проблема с несколькими приложениями или версиями.

l_39217_l 20.03.2009 21:04

Имейте в виду, что у Java Web Start традиционно было много проблем с кешированием. Вы можете очень помочь, убедившись, что каждая версия каждого развертываемого файла имеет уникальный URL-адрес (например, вставив имя версии или номер выпуска в URL-адрес).

Thorbjørn Ravn Andersen 12.02.2010 14:51

@JohnGardner Пользователь всегда может включить консоль.

Tomáš Zato - Reinstate Monica 29.03.2015 03:45

Web Start отлично подходит, если у вас нечастые обновления и хорошая пропускная способность.

Если же нет, вам нужно что-то еще. Я работал над проектом, в котором у нас были частые обновления и ужасная пропускная способность. Мы свернули наш собственный сервер файлов классов; код запуска будет общаться с сервером, чтобы узнать, нужны ли обновления для каждого класса. Если это так, измененные классы были загружены, и приложение продолжало работать в обычном режиме.

На самом деле это было не так уж сложно, поэтому не бойтесь откатывать свои собственные, если существующие инструменты не работают.

jardiff означает, что нужно загружать только различия, а не все. Должно быть нормально даже с плохой пропускной способностью.

Tom Hawtin - tackline 20.11.2008 21:02

@tom, у тебя есть опыт в этом? Я хотел бы услышать, стоит ли это усилий.

Thorbjørn Ravn Andersen 19.11.2009 00:42

davetron, как я могу реализовать код запуска в одном файле jar? Сканирование различий классов - это не проблема, но запуск есть. Я не могу перезаписать работающую банку после загрузки обновления.

Tomáš Zato - Reinstate Monica 29.03.2015 03:47

Томаш: что мы сделали (и я не уверен, что это было почти 7 лет назад :), так это загрузить классы и убедиться, что новые классы находятся на пути к классам раньше, чем старые. У нас был контроль над путем к классам, так что это не было проблемой.

davetron5000 29.03.2015 22:33

Я считаю, что install4J теперь предлагает эту функциональность как часть своего конструктора установки (http://www.ej-technologies.com/products/install4j/overview.html). Мы хотели проверить это, но пока не имели возможности.

Спасибо, было интересно. Возможно, используйте это для «основного контейнера», и, например, OSGi Eclipse для плагинов?

stolsvik 21.11.2008 11:55

Взгляните на Равноденствие p2, что, вероятно, вы имели в виду под «материалом OSGi Eclipse RCP» ... НАСКОЛЬКО вам, воля нужно OSGi-ify ваше приложение для использования p2 (что, по крайней мере, означает, что все ваше приложение будет одним большим пакетом) .

Другие вопросы по теме