как написать самообновление Java Swing (не Java Web Start решение)? - PullRequest
0 голосов
/ 03 декабря 2011
  1. проверка сервера на наличие каталога, содержащего обновления.
  2. загрузка jar-файлов в текущий каталог приложения.
  3. уведомление пользователя о перезапуске приложения.

Myпроблема заключается в перезаписи старых файлов во время работы приложения Java.

например, myapp.jar и другие библиотеки jar были обновлены и должны быть заменены путем загрузки новых версий в текущий каталог приложения и перезаписи в процессе.Есть ли способ добиться этого?Это позволит перезаписать?

Ответы [ 2 ]

2 голосов
/ 03 декабря 2011

Есть ли способ добиться этого?

Я ожидаю, что так.Но ваша работа - заставить его работать.А если серьезно, то согласие заключается в том, что вы заново изобретаете колесо.

Будет ли разрешено перезапись?

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

Существуют различные способы (*), с которыми вы можете обойти это, но они сводятся к тому, что у вас есть какой-то специальный пусковой механизм, который заботится о загрузке, обновлении и т. д.на ... и затем запускает или перезапускает ваше реальное приложение.И, в основном, это то, что делает JNLP ... отсюда и наблюдение, что вы предлагаете заново изобрести колесо.

(* Я бы добавил, что эти пути довольно очевидны для меня. И если онидля вас это не очевидно, это еще одна причина, по которой вам лучше использовать JNLP, иначе вы рискуете получить квадратное колесо.)

1 голос
/ 03 декабря 2011

Вы не можете рассчитывать на возможность перезаписи файлов JAR. Это, вероятно, будет работать на Linux, но определенно не на Windows.

Один из способов решить эту проблему - загрузить файлы jar во временную папку, а затем при запуске (до запуска JVM) переместить временные банки в папку загрузки приложения и затем запустить. Примечание: вам нужно как-то проверить содержимое банок после загрузки, чтобы убедиться, что они не повреждены. Сумма md5 будет работать.

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