解決java.lang.IllegalArgumentException: URI is not hierarchical報(bào)錯(cuò)的問(wèn)題
java.lang.IllegalArgumentException: URI is not hierarchical

Thread.currentThread().getContextClassLoader("類(lèi)的全路徑").getClass().newInstance()
一個(gè)類(lèi)的靜態(tài)塊初始化異常了,后面調(diào)用這個(gè)類(lèi)創(chuàng)建對(duì)象會(huì)報(bào)錯(cuò)嗎?
是的,如果一個(gè)類(lèi)的靜態(tài)塊初始化過(guò)程中拋出了異常,后續(xù)任何嘗試創(chuàng)建該類(lèi)的對(duì)象或訪問(wèn)該類(lèi)的靜態(tài)成員都會(huì)失敗,并拋出 ExceptionInInitializerError 或顯示 "Could not initialize class ClassName" 的錯(cuò)誤。
這是因?yàn)镴ava類(lèi)加載機(jī)制的工作方式
- 當(dāng) JVM 第一次遇到一個(gè)類(lèi)時(shí)(通過(guò)創(chuàng)建對(duì)象、訪問(wèn)靜態(tài)成員等方式),它會(huì)觸發(fā)類(lèi)加載過(guò)程
- 類(lèi)加載過(guò)程包括:加載、驗(yàn)證、準(zhǔn)備、解析和初始化幾個(gè)步驟
- 在初始化階段,JVM 會(huì)執(zhí)行類(lèi)的靜態(tài)初始化塊和靜態(tài)字段初始化
- 如果在這個(gè)過(guò)程中拋出了任何異常,那么類(lèi)的初始化會(huì)失敗
- 一旦類(lèi)初始化失敗,JVM 會(huì)將該類(lèi)標(biāo)記為不可用狀態(tài)
- 之后任何嘗試使用該類(lèi)的操作都會(huì)導(dǎo)致
NoClassDefFoundError或者顯示 "Could not initialize class ClassName" 的錯(cuò)誤
這就是為什么當(dāng) HiveConf 類(lèi)的靜態(tài)初始化塊失敗后,后續(xù)調(diào)用 HiveConf.setHiveSiteLocation(null) 或創(chuàng)建 HiveConf 對(duì)象時(shí)會(huì)報(bào)錯(cuò):
"Could not initialize class org.apache.hadoop.hive.conf.HiveConf"
要解決這個(gè)問(wèn)題,您需要修復(fù)導(dǎo)致靜態(tài)初始化塊失敗的根本原因,在這種情況下,就是解決 URI is not hierarchical 錯(cuò)誤。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 解決java.lang.IllegalArgumentException異常問(wèn)題
- java.lang.IllegalArgumentException:Invalid character found異常解決
- 基于java.lang.IllegalArgumentException異常報(bào)錯(cuò)問(wèn)題及解決
- IDEA 中使用 ECJ 編譯出現(xiàn) java.lang.IllegalArgumentException的錯(cuò)誤問(wèn)題
- 如何解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X
相關(guān)文章
Java中實(shí)現(xiàn)定時(shí)任務(wù)的兩種方法舉例詳解
這篇文章主要給大家介紹了關(guān)于Java中實(shí)現(xiàn)定時(shí)任務(wù)的兩種方法,文中總結(jié)了各種實(shí)現(xiàn)方式的優(yōu)缺點(diǎn),并給出了推薦的使用場(chǎng)景,通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-12-12
Spring框架基于xml實(shí)現(xiàn)自動(dòng)裝配流程詳解
自動(dòng)裝配就是指?Spring?容器在不使用?<constructor-arg>?和<property>?標(biāo)簽的情況下,可以自動(dòng)裝配(autowire)相互協(xié)作的?Bean?之間的關(guān)聯(lián)關(guān)系,將一個(gè)?Bean?注入其他?Bean?的?Property?中2022-11-11
Mybatis-Plus中的selectByMap使用實(shí)例
Mybatis-Plus來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查時(shí),將里面的函數(shù)試了個(gè)遍,接下來(lái)我就將使用selectByMap函數(shù)的簡(jiǎn)單測(cè)試實(shí)例寫(xiě)出來(lái),方便沒(méi)有使用過(guò)的朋友們快速上手,感興趣的可以了解一下2021-11-11
Intellij搭建springmvc常見(jiàn)問(wèn)題解決方案
這篇文章主要介紹了Intellij搭建springmvc常見(jiàn)問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Java中的CompletionService批量異步執(zhí)行詳解
這篇文章主要介紹了Java中的CompletionService批量異步執(zhí)行詳解,我們知道線程池可以執(zhí)行異步任務(wù),同時(shí)可以通過(guò)返回值Future獲取返回值,所以異步任務(wù)大多數(shù)采用ThreadPoolExecutor+Future,需要的朋友可以參考下2023-12-12
MyBatis批量插入/修改/刪除MySql數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于MyBatis批量插入/修改/刪除MySql數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
java 取交集方法retainAll的實(shí)現(xiàn)
這篇文章主要介紹了java 取交集方法retainAll的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06

