WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction (file:/D:/localRepository_Gradle/caches/modules-2/files-2.1/com.baomidou/mybatis-plus-core/3.5.2/d754592273020c1d1185fc0c7c12b6dfc60e48f2/mybatis-plus-core-3.5.2.jar) to field java.lang.invoke.SerializedLambda.capturingClass
WARNING: Please consider reporting this to the maintainers of com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
- 反射访问限制:Java 9 开始引入了模块系统,对反射访问施加了更严格的管控。代码里若有通过反射访问私有字段、方法等操作,就可能违反这些限制从而触发警告。
- MyBatis-Plus 版本问题:MyBatis-Plus 某些版本在使用反射时,可能未遵循 Java 9 及后续版本的新规则,进而引发非法反射访问警告。
1. 升级 MyBatis-Plus 版本
MyBatis-Plus 团队或许已经在后续版本中修复了这些反射访问问题。你可以尝试把 MyBatis-Plus 升级到最新版本。在 build.gradle
里进行如下修改:
implementation 'com.baomidou:mybatis-plus-boot-starter:最新版本号'
2. 启用反射访问
你能够通过 JVM 参数来启用非法反射访问,不过这仅仅是临时的解决办法,因为未来的 Java 版本可能会彻底禁止非法反射访问。在运行 Java 应用程序时添加如下 JVM 参数:
--illegal-access=permit
在 IDE 里添加 JVM 参数的方法:
- IntelliJ IDEA:打开
Run/Debug Configurations
,在VM options
中添加--illegal-access=permit
。 - Eclipse:打开
Run Configurations
,在Arguments
标签页的VM arguments
中添加--illegal-access=permit
。
3. 忽略警告
要是你确认这些警告不会对应用程序的正常运行造成影响,也可以选择忽略它们。添加如下 JVM 参数:
--illegal-access=deny