java.lang.invoke.SerializedLambda.capturingClass accessible: module java.base does not “opens java.l

上述报错的原因是:

MyBatis-Plus 在内部需要使用 反射 + SerializedLambda 来获取字段名(如 User::getUsername → "username")。

但:

  • Java 9 之后引入模块系统(Jigsaw)

  • 默认不允许 开放 JDK 核心类(如 java.lang.invoke)的反射访问

于是当 MP 试图访问 SerializedLambda.capturingClass 时就触发了:

InaccessibleObjectException: module java.base does not "opens java.lang.invoke"

解决方法:

IDEA 中添加方式

  1. 打开 Run > Edit Configurations

  2. VM options 里添加上面这条参数 

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

你可能感兴趣的:(java,tomcat,开发语言)