错误如下:
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected java.lang.ClassLoader() accessible: module java.base does not "opens java.lang" to unnamed module @75dcbabb
另外,我使用maven来编译。感谢您阅读此主题!希望你能帮我解决这个问题!
在 java 17 上,某些内部模块有一些更高的限制。
我不确定您是否在实现代码上遇到此问题或“仅”用于测试。根据我的经验,这个问题在测试中更常见,因为大多数模拟框架都会打破限制......
但是你必须给出这些参数
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
如果您需要这个来进行单元测试并使用 Maven,那么您可以使用如下配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<argLine>
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
</argLine>
</configuration>
</plugin>
</plugins>
</build>