Недопустимый отражающий доступ через org.springframework.cglib.core.ReflectUtils $1

My JDK 9 + 181 Spring Программа загрузки 2.0.0.BUILD-SNAPSHOT CLI отображает это предупреждение при запуске:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 (jar:file:/home/jan/src/fm-cli/target/fm-cli-0.1.0-SNAPSHOT.jar!/BOOT-INF/lib/spring-core-5.0.0.RELEASE.jar!/) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.springframework.cglib.core.ReflectUtils$1

Это консольное приложение, поэтому мне нужно отключить это предупреждение - как я могу это сделать?

Примечание.. Этот вопрос задает конкретный вопрос о том, как отключить это предупреждение, вызванное Spring; это не дубликат JDK9: Произошла незаконная операция рефлексивного доступа. org.python.core.PySystemState, который имеет сходный симптом в другой библиотеке.

Ответ 1

Добавьте в JVM следующий параметр, чтобы отключить предупреждение от Spring использования CGLIB:

--add-opens java.base/java.lang=ALL-UNNAMED

например:

java --add-opens java.base/java.lang=ALL-UNNAMED -jar target/*.jar

Не нужно сообщать об этом; это известная ошибка Spring.

Это происходит потому, что новая модульная система JDK 9 обнаружила незаконный доступ, который будет запрещен когда-нибудь в ближайшем будущем. Подробнее о системе JDK 9 здесь.