我有一个老的SpringBoot项目,现在跑在jdk11上,能正常运行,但是在项目启动时会报错如下:java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled
和java.lang.IllegalAccessException: class io.netty.util.internal.PlatformDependent0$6
cannot access class jdk.internal.misc.Unsafe (in module java.base)
because module java.base does not export jdk.internal.misc to unnamed module @5fe6ab15
发现是某些模块在jdk11被剥离开来了,需要手动导入,或者某些内部类和不可读类也要显式申明才能使用。
上stackoverflow发现可以使用module-info.java来解决
那么问题来了,现在我创建一个module-info.java文件,所有的模块都需要自己requires或者open吗?就算我自己知道需要导入哪些(而且我还不知道要导入哪些),但也太多了,很不友好,各位有什么好办法吗?
项目配置:
SpringBoot: 2.1.1.RELEASE
Gradle: 5.1.1
Jdk: 11