Всегда ли пользователям библиотеки нужно перекомпилировать, когда библиотека переключает компилятор с 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 ответ

Решение

Если нет никаких (двоичных) несовместимых изменений в интерфейсах / классах и виртуальная машина времени выполнения поддерживает новую версию файла классов, то проблем быть не должно.

Другие вопросы по тегам