Java8工程升级为17后无法启动,报错Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass

?如下图所示,项目由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,还需要在下面的这几处地方修改配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


版权声明:本文为feyehong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。