解決java.lang.IllegalArgumentException: URI is not hierarchical報錯的問題
java.lang.IllegalArgumentException: URI is not hierarchical
Thread.currentThread().getContextClassLoader("類的全路徑").getClass().newInstance()
一個類的靜態(tài)塊初始化異常了,后面調(diào)用這個類創(chuàng)建對象會報錯嗎?
是的,如果一個類的靜態(tài)塊初始化過程中拋出了異常,后續(xù)任何嘗試創(chuàng)建該類的對象或訪問該類的靜態(tài)成員都會失敗,并拋出 ExceptionInInitializerError
或顯示 "Could not initialize class ClassName" 的錯誤。
這是因為Java類加載機制的工作方式
- 當 JVM 第一次遇到一個類時(通過創(chuàng)建對象、訪問靜態(tài)成員等方式),它會觸發(fā)類加載過程
- 類加載過程包括:加載、驗證、準備、解析和初始化幾個步驟
- 在初始化階段,JVM 會執(zhí)行類的靜態(tài)初始化塊和靜態(tài)字段初始化
- 如果在這個過程中拋出了任何異常,那么類的初始化會失敗
- 一旦類初始化失敗,JVM 會將該類標記為不可用狀態(tài)
- 之后任何嘗試使用該類的操作都會導致
NoClassDefFoundError
或者顯示 "Could not initialize class ClassName" 的錯誤
這就是為什么當 HiveConf
類的靜態(tài)初始化塊失敗后,后續(xù)調(diào)用 HiveConf.setHiveSiteLocation(null)
或創(chuàng)建 HiveConf
對象時會報錯:
"Could not initialize class org.apache.hadoop.hive.conf.HiveConf"
要解決這個問題,您需要修復導致靜態(tài)初始化塊失敗的根本原因,在這種情況下,就是解決 URI is not hierarchical
錯誤。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- 解決java.lang.IllegalArgumentException異常問題
- java.lang.IllegalArgumentException:Invalid character found異常解決
- 基于java.lang.IllegalArgumentException異常報錯問題及解決
- IDEA 中使用 ECJ 編譯出現(xiàn) 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搭建Spring MVC和Vue3的應用程序的實現(xiàn)
本文主要介紹了搭建Spring MVC和Vue3的應用程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-11-11IntelliJ?IDEA?2024.2?發(fā)布新功能介紹Spring?Data?JPA即時查詢、自動補全cro
在2024.2?Ultimate版本中,對?Spring?Data?JPA?的支持做了增強,新功能允許您在不運行應用程序和分析日志文件的情況下查看方法將生成的查詢,下面就來一起看看這個版本中推出的幾個強大新特性2024-08-08