Управление совместимостью версий Java
Я прочитал это "JDKs обычно вперед-совместимы, и JREs, как правило, обратно-совместимы."
какую проверку версий делают разработчики Java в своих приложениях?
вы обновляете свой JDK с каждым выпуском?
Как минимизировать несовместимость между выпусками?
2 ответов
стратегия, которая хорошо сработала для нас, - это решить, какие версии JRE мы будем поддерживать. Мы делаем это, рассматривая платформы, используемые нашими пользователями, особенности версии конкретной JRE, которую мы хотели бы использовать, и даты выпуска версий JRE. Все это делается в тесной консультации с нашим отделом поддержки клиентов. (Конечно, при прочих равных мы предпочитаем более новые версии, поскольку они, как правило, имеют исправления ошибок, оптимизации, обновления безопасности, так далее.)
затем это становится входным сигналом в наш процесс QA. Наши усилия по тестированию должны охватывать все версии JRE, которые мы поддерживаем.
наконец, мы используем возможность указать конкретные версии JRE в файле JNLP при развертывании нашего приложения, чтобы гарантировать, что клиенты, которые пытаются запустить наше приложение с неподдерживаемой версией, получают "сбой-быстрый" опыт (с полезным сообщением о том, как получить правильную версию JRE), а не таинственные сбои вниз по дорога.
одна вещь, которую мы делаем для минимизации несовместимости, - это избегать недокументированных API (sun.misc
, etc.).
явная проверка текущей версии JRE из вашего кода должна рассматриваться только как последнее средство для работы с известной ошибкой в конкретной версии JRE. Если такая ошибка обнаружена достаточно рано в процессе, мы предпочитаем, чтобы просто удалить версию JRE из списка поддерживаемых версий.
как минимизировать несовместимость между выпусками?
- чтение документов, таких как несовместимости в J2SE 5.0 с 1.4.2
- используя в этой таблице чтобы узнать все несовместимости между версиями jdk:
отчет генерируется с помощью japi-compliance-checker.