Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @7a79be86这个错误是由于Java的模块化体系引入的安全限定导致的。在Java 9及之后的版本中,模块体系对反射访问举行了限定,以防止对核心Java类的不安全访问。
说明:3.使用Java 8:假如你的项目不需要Java 9或更高版本的功能,而且受模块化体系的影响较大,你可以思量使用Java 8,它不受这些限定的影响。
这个下令会告诉JVM答应所有未定名的模块(ALL-UNNAMED)通过反射访问 java.base 模块中的 java.lang 包。请注意,使用 --add-opens 参数是一种暂时的解决方案,通常只用于开发和测试,而不是生产情况,因为它可能会破坏Java的模块化封装和安全性。
在开发过程中,你应该尽量避免需要这种访问的情况,或者寻找其他不依赖于反射的解决方案。假如确实需要这样做,请确保你了解相关的安全风险,并在生产情况中仔细评估。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |