如下图所示,项目由Java8升级为Java17后,启动时报错
具体错误为Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass
⏹这是由于 JDK 8 中有关反射相关的功能自从 JDK 9 开始就已经被限制了。
为了兼容原先的版本,需要在运行项目时添加 --add-opens java.base/java.lang=ALL-UNNAMED
选项来开启这种默认不被允许的行为。
⏹STS的Maven工程需要在如下图所示的地方配置参数
如果要升级为Java17,还需要在下面的这几处地方修改配置