Обновление базы временных зон с помощью Java Timezone Updater Tool

Утилита Java Timezone Updater Tool предназначена для обновления базы временных зон в вашей JRE до последней версии. Программу рекомендуется использовать, если вы по каким либо причинам не можете обновить JRE до последней версии, либо если в в свежую JRE включена устаревшая база временных зон. Скачать Java Timezone Updater Tool можно на странице загрузки.

Перед запуском программы следуешь завершить все выполняющиеся Java-приложения и апплеты.

Как запустить

java -jar tzupdater.jar options

Возможные опции

-h, --help Вывод справки
-V, --version Вывод версии программы и версий баз временных зон в JRE и Updater Tool.
-u, --update Обновляет базу временных зон и запускает проверочные тесты.
-l, --location Компиляция, тестирование и обновление базы из указанного файла tzdata.tar.gz. Поддерживаются протоколы http://, https:// и file://, например -l http://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
-f, --force Принудительно обновляет базу временных зон, даже если версия имеющейся базы более новая. Использование данной опции не требуется в нормальных условиях.
-v, --verbose Вывод более детальной информации о выполняемых действиях.
-bc, --backwardcompatible Сохраняет обратную совместимость с JDK версии 1.1 с трёхбуквенными идентификаторами временных зон «MST», «EST», and «HST». Любые идентификаторы, которые конфликтуют с JDK 1.1 будут исключены из обновления. Данный параметр может быть применим только к JRE до 7-й версии включительно.
-t, --test Запускает проверочные тесты, определяющие есть ли в JRE данные временных зон, не соответствующие данным программы.

В простейшем случае обновить базы временных зон можно следующей командой.

java -jar tzupdater.jar -u

Если программа сталкивается с неожиданной ошибкой, например нехваткой свободного места, она пытается восстановить оригинальное состояние базы.

Синие самбовки Спортивный город Спортивныйгород.рф Sportcity74 Спортсити74.

Обновление по требованию

В версии программы 2.0 появилась возможность обновления временных зон из исходников, для этого был добавлен параметр -l, задающий местоположения файла tzdata.tar.gz. Однако есть один нюанс, если Updater Tool загружает файл откуда нибудь из сети, то проверяет его контрольную сумму sha512, сохранённую на сайте Oracle. И если новая версия базы появилась недавно, и для неё ещё не успели загрузить на сайт файл контрольной суммы, то программа выдаст ошибку примерно следующего вида.

No SHA-512 hash file found: https://javadl-esd-secure.oracle.com/update/tzupdater/tzdata2015d.tar.gz.sha512. If using http(s) resource location, the file may not yet be available.
Please reference tzupdater README

Чтобы решить проблему, нужно сохранить файл локально, и создать в том же каталоге файл контрольной суммы с добавлением к имени исходного файла .sha512. Например для Linux, чтобы обновление прошло наверняка можно воспользоваться такой последовательностью команд.

wget -O /tmp/tzdata-latest.tar.gz http://www.iana.org/time-zones/repository/tzdata-latest.tar.gz
sha512sum /tmp/tzdata-latest.tar.gz | cut -c -128> /tmp/tzdata-latest.tar.gz.sha512
java -jar tzupdater.jar -u -l file:///tmp/tzdata-latest.tar.gz
rm /tmp/tzdata-latest.tar.gz /tmp/tzdata-latest.tar.gz.sha512