hadoop Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.
时间: 2023-12-01 18:43:29 浏览: 108
java.lang.NoClassDefFoundError错误解决办法
5星 · 资源好评率100%
这个异常信息是由于Java 9及以上版本中的模块化系统所引起的。在这个系统中,Java默认不允许未命名模块(unnamed module)访问Java基础模块(java.base module)中的某些包,其中就包括了java.lang包。而Hadoop中的某些代码需要访问这些包,因此就会出现这个异常。
解决这个问题的方法是在启动Hadoop时添加VM启动参数,具体来说就是在“Edit Configurations”中的“VM options”输入框中添加--add-opens java.base/java.lang=ALL-UNNAMED选项,这样就可以开启这种默认不被允许的行为了。
除了添加VM启动参数外,如果pom.xml文件中含有<java.version>标签,还需要将其中的java8改为当前Java版本,例如<java.version>17</java.version>。
阅读全文