Всегда ли пользователям библиотеки нужно перекомпилировать, когда библиотека переключает компилятор с 1.5 на 1.6?
Пожалуйста, рассмотрите следующий сценарий: Java Framework и набор плагинов приложения развертываются как клиентское приложение Java SE. Клиентская среда выполнения - это Java SE 6, тогда как инфраструктура и плагины приложений скомпилированы с Java SE 5.
Теперь фреймворк перекомпилирован с Java SE 6, плагины приложений остаются без изменений (скомпилировано с Java SE 5).
Если предположить, что "интерфейс" фреймворка (классы / интерфейсы, непосредственно используемые плагинами приложения) остается совместимым с Java SE 5 (языковой уровень и API), то возникает вопрос: нужно ли перекомпилировать плагины приложения (против перекомпилированной инфраструктуры) в Чтобы быть совместимым во время выполнения (с Java SE 6)?
Возможно, вопрос сводится к следующему: при каких обстоятельствах могут возникнуть какие-либо проблемы, когда "SE6-classfiles" (v50) используются "SE5-classfiles" (v49) в среде SE6-runtime?
1 ответ
Если нет никаких (двоичных) несовместимых изменений в интерфейсах / классах и виртуальная машина времени выполнения поддерживает новую версию файла классов, то проблем быть не должно.