Это странно. Мое понимание (которое не изменилось после перечитывания документов в последнее время) заключается в том, что безопасно заменить jar на сервере запуска JNLP (в нашем случае в Интернете) во время работы клиентов. Если я правильно понимаю, при запуске клиент загружает jar, а затем запускает его локально. Таким образом, обновление исходного jar не имеет никакого эффекта до следующего запуска, когда он будет извлечен (как обновленная версия).
Один из моих коллег недавно сказал, что он собирался развертывать новые банки только тогда, когда все наши клиенты были отключены от системы, поскольку это вызывало проблемы, если он обновлялся, когда они были включены. Это совсем не совпадало ни с моим предыдущим опытом, ни с моим пониманием. Итак, я перечитал документы и чувствовал себя действительно комфортно с моей позицией по этому вопросу. Тем не менее, я сделал обновление для этого проекта и вытолкнул его. В течение следующего часа у нескольких клиентов начались всевозможные странные проблемы (подобные тем, которые вы получите, если обновите банку, с которой кто-то запускает прямо). Я подтвердил, что все они выполняют JNLP, я могу наблюдать, как локальная Java выполняет загрузку, и т. Д. Я не представляю, как выполняемая ими копия могла бы даже знать, что Jar-файл JNLP был обновлен, если они не будут перезапущены.
Иногда клиенты запускают несколько копий программного обеспечения одновременно на одном компьютере. Насколько интеллектуален JNLP, будет ли он загружать обновленный jar поверх одного в кэш, который уже используется? Любые другие вещи, которые могут быть причиной проблемы?