Наша компания планирует перейти на AdoptOpenJdk 11 с работающей на нем Wildfly 10

Наша компания планирует перейти на AdoptOpenJdk 11 с Oracle JDK8, на котором работает Wildfly 10. Весь код и сервер wildfly будут одинаковыми (написаны и поддерживаются JDK8), и, поскольку java обратно совместим, я думаю, что теоретически он должен работать, но есть ли какие-либо проблемы, о которых мы должны знать?

Это очень интересная тема, но, к сожалению, противоречит правилам SO: вопросы, в которых нас просят порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебник или другой сторонний ресурс, не относятся к теме Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы. и спам. Вместо этого опишите проблему и то, что уже было сделано для ее решения.

Yassin Hajaj 13.03.2019 19:44

Быстрый ответ: вы использовали классы Sun? Вам нужно будет реорганизовать их. Вы хотите использовать модули? Впереди много работы. Внеплановая замена? Все хорошо. (вы можете обнаружить, что некоторые предварительно упакованные зависимости были удалены с JEE, поэтому вам нужно будет добавить их как зависимости компиляции)

LppEdd 13.03.2019 19:47

Java 11 не имеет полной обратной совместимости с Java 8. Многие классы были удалены, структура JDK и JRE отличается и многое другое. Просто просмотрите вопросы, отмеченные java-11.

Robert 13.03.2019 19:53

Спасибо всем за их понимание, я думаю, что знаю ответ, который я ищу.

Zeus 13.03.2019 20:00

@Robert, структура другая, но модули не являются обязательными. Автоматические/безымянные модули работают так же, как решение до JDK9.

LppEdd 13.03.2019 20:27

Дубликат: Переход с Java 8 на Java 11/12

Basil Bourque 13.03.2019 22:55

@LppEdd Затем попробуйте запустить проект на Java 11, который использует Jaxb, JavaFX, Java WebStart, JavaEE или классы из com.sun.*, и посмотрим, что произойдет.

Robert 14.03.2019 08:34

@ Роберт, это то, что я написал двумя комментариями выше. Но это не значит, что они несовместимы. Это просто требует компиляции зависимостей вместо того, чтобы быть предварительно упакованным

LppEdd 14.03.2019 08:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
581
2

Ответы 2

Есть много обновлений от JDK 8 до JDK 11. Я бы рекомендовал просто перейти на AdoptOpenJdk 8 в краткосрочной перспективе. Ваш конкретный код может быть в порядке, но у вас также есть огромный набор зависимостей, которые могут использовать что-то, что нуждается в обновлении. Например, какой у вас инструмент сборки? Gradle нужно было обновить, потому что ему нужна была более новая версия ASM. Вы используете JAX-RS? Джерси 2.27 не работает на Java 11.

JavaEE сейчас находится в странном положении, потому что Oracle фактически свалил его на основу Eclipse (теперь она называется JakartaEE). Потребуется некоторое время, чтобы разобраться.

Это отличное понимание. Я также прочитал в комментариях выше, что многие классы были удалены, поэтому для нас это не простое обновление JDK. Я должен подождать, пока все библиотеки их поддержат.

Zeus 13.03.2019 19:57

Я перешел с openjdk-8 на openjdk-11.
Шаги, которым я следую:
1. Добавьте отсутствующие зависимости Java в jdk11
2. Обновите/удалите поддерживаемые плагины (необходимо обновить ASM до 7.1, cglib или другие библиотеки для работы с байтами)
3. Измените JAVA_OPTIONS, связанные с GC.
4. Поддержка Wildfly для java11

Подробнее о версиях libs см. связь

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