Как создать контрольную сумму для файла JAR - PullRequest
0 голосов
/ 19 сентября 2011

Мы хотим реализовать такую ​​функцию: когда пользователь впервые запускает приложение, приложение загрузит файл jar на локальный ПК с сервера и загрузит файл jar, но когда пользователь снова запустит приложение, приложение сможет различить содержимое файл JAR в локальной папке такой же, как файл на сервере, если это не так, загрузите его снова, просто загрузите его из локальной папки; если нет, приложение загрузит его и обновит локальное (имя файла jar на сервере и на локальном сервере должно совпадать). В настоящее время одно решение, которое я могу придумать, - это использовать контрольную сумму: приложение генерирует контрольную сумму локального jar-файла, а затем получает контрольную сумму серверного jar-файла с сервера, проверяет, совпадают ли они, если нет, то снова загружать, если не загружать и обновлять , Есть ли простой способ создать контрольную сумму файла JAR? Или есть какое-то другое лучшее решение для этой функции? Благодарю.

Ответы [ 5 ]

3 голосов
/ 19 сентября 2011

Расчет контрольной суммы jar аналогичен вычислению контрольной суммы любого файла. Но, похоже, вам нужен Java Web Start , который позаботится обо всем.

1 голос
/ 19 сентября 2011

Кажется, я могу использовать "java.util.zip.CRC32", чтобы получить значение контрольной суммы файла jar.Но я не уверен, есть ли вероятность, что значения контрольных сумм двух jar-файлов одинаковы, но на самом деле два jar-файла различны (немного различаются по содержанию)?

0 голосов
/ 09 декабря 2014

Если вы создаете JAR-файл с помощью Maven, существует плагин Maven для генерации контрольных сумм скомпилированного JAR-файла. Maven Plugin Link .

Что касается загруженной банки, вы можете локально СОХРАНИТЬ, а не генерировать контрольную сумму банок. Получите контрольную сумму с сервера и отправляйте запрос на нее каждый раз, когда вам нужно проверить, изменилась ли контрольная сумма банок, и, если это так, скачайте новую.

0 голосов
/ 05 апреля 2012

Вы можете использовать Files.getChecksum (файл) из библиотек Google Guava

0 голосов
/ 19 сентября 2011

Java Web Start, безусловно, является правильным способом сделать это, как говорит Божо. О ручной альтернативе см. Какой лучший способ добавить функцию самообновления в приложение Java Swing?

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