Tag Archives: Springboot WARNING

[Solved] Springboot WARNING: All illegal access operations will be denied in a future release

1、 Problem description

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils (file:/C:/Users/.m2/repository/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.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
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

2、 Solutions

There are many versions on the Internet,

1. Reduce JDK version, such as using java 11, change to Java 8

2. Add the following method to the startup class. Call this method when starting springboot to test the effectiveness of JDK 11

public static void disableWarning() {
    try {
      Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe");
      theUnsafe.setAccessible(true);
      Unsafe u = (Unsafe) theUnsafe.get(null);

      Class cls = Class.forName("jdk.internal.module.IllegalAccessLogger");
      Field logger = cls.getDeclaredField("logger");
      u.putObjectVolatile(cls, u.staticFieldOffset(logger), null);
    } catch (Exception e) {
      // ignore
    }
  }

  public static void main(String[] args) {
    disableWarning();
    SpringApplication.run(CpmApiApplication.class, args);
  }

Springboot WARNING: An illegal reflective access operation has occurred

 

The warning is shown in the figure. The warning is because the jdk version is too high (I use 15.0, and it is said that it will be the same for 9.0). The specific principle has not been studied. It does not affect the normal operation of the project, but it looks very sad There is wood there~~~~

The solution is to reduce the project jdk to 1.8 and below, 1.8 is recommended.