解决java.lang.IllegalArgumentException: URI is not hierarchical报错的问题
java.lang.IllegalArgumentException: URI is not hierarchical

Thread.currentThread().getContextClassLoader("类的全路径").getClass().newInstance()
一个类的静态块初始化异常了,后面调用这个类创建对象会报错吗?
是的,如果一个类的静态块初始化过程中抛出了异常,后续任何尝试创建该类的对象或访问该类的静态成员都会失败,并抛出 ExceptionInInitializerError 或显示 "Could not initialize class ClassName" 的错误。
这是因为Java类加载机制的工作方式
- 当 JVM 第一次遇到一个类时(通过创建对象、访问静态成员等方式),它会触发类加载过程
- 类加载过程包括:加载、验证、准备、解析和初始化几个步骤
- 在初始化阶段,JVM 会执行类的静态初始化块和静态字段初始化
- 如果在这个过程中抛出了任何异常,那么类的初始化会失败
- 一旦类初始化失败,JVM 会将该类标记为不可用状态
- 之后任何尝试使用该类的操作都会导致
NoClassDefFoundError或者显示 "Could not initialize class ClassName" 的错误
这就是为什么当 HiveConf 类的静态初始化块失败后,后续调用 HiveConf.setHiveSiteLocation(null) 或创建 HiveConf 对象时会报错:
"Could not initialize class org.apache.hadoop.hive.conf.HiveConf"
要解决这个问题,您需要修复导致静态初始化块失败的根本原因,在这种情况下,就是解决 URI is not hierarchical 错误。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
- 解决java.lang.IllegalArgumentException异常问题
- java.lang.IllegalArgumentException:Invalid character found异常解决
- 基于java.lang.IllegalArgumentException异常报错问题及解决
- IDEA 中使用 ECJ 编译出现 java.lang.IllegalArgumentException的错误问题
- 如何解决Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X
相关文章
mybatis-plus IdWorker生成的Id和返回给前台的不一致的解决
这篇文章主要介绍了mybatis-plus IdWorker生成的Id和返回给前台的不一致的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03
IntelliJ IDEA 2024.2 发布新功能介绍Spring Data JPA即时查询、自动补全cro
在2024.2 Ultimate版本中,对 Spring Data JPA 的支持做了增强,新功能允许您在不运行应用程序和分析日志文件的情况下查看方法将生成的查询,下面就来一起看看这个版本中推出的几个强大新特性2024-08-08


最新评论