一尘不染

org.springframework.cglib.core.ReflectUtils $ 1的非法反射访问

spring-boot

我的JDK 9 + 181 Spring Boot 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的副本:发生了非法的反射访问操作。处理不同库中的类似症状。


阅读 873

收藏
2020-05-30

共1个答案

一尘不染

在JDK 9+中,将以下选项添加到JVM以禁用Spring使用CGLIB的警告:

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

例如:

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

无需举报;这是一个已知的Spring bug

发生这种情况是因为新的JDK
9模块系统检测到非法访问,该访问将在不久的将来被禁止。您可以在此处阅读有关JDK 9
Module系统的
更多信息。

更新

带有Spring 5.1+的JDK 9+可以解决此问题。

2020-05-30