解決java.lang.IllegalArgumentException: URI is not hierarchical報(bào)錯(cuò)的問(wèn)題
java.lang.IllegalArgumentException: URI is not hierarchical
Thread.currentThread().getContextClassLoader("類的全路徑").getClass().newInstance()
一個(gè)類的靜態(tài)塊初始化異常了,后面調(diào)用這個(gè)類創(chuàng)建對(duì)象會(huì)報(bào)錯(cuò)嗎?
是的,如果一個(gè)類的靜態(tài)塊初始化過(guò)程中拋出了異常,后續(xù)任何嘗試創(chuàng)建該類的對(duì)象或訪問(wèn)該類的靜態(tài)成員都會(huì)失敗,并拋出 ExceptionInInitializerError
或顯示 "Could not initialize class ClassName" 的錯(cuò)誤。
這是因?yàn)镴ava類加載機(jī)制的工作方式
- 當(dāng) JVM 第一次遇到一個(gè)類時(shí)(通過(guò)創(chuàng)建對(duì)象、訪問(wèn)靜態(tài)成員等方式),它會(huì)觸發(fā)類加載過(guò)程
- 類加載過(guò)程包括:加載、驗(yàn)證、準(zhǔn)備、解析和初始化幾個(gè)步驟
- 在初始化階段,JVM 會(huì)執(zhí)行類的靜態(tài)初始化塊和靜態(tài)字段初始化
- 如果在這個(gè)過(guò)程中拋出了任何異常,那么類的初始化會(huì)失敗
- 一旦類初始化失敗,JVM 會(huì)將該類標(biāo)記為不可用狀態(tài)
- 之后任何嘗試使用該類的操作都會(huì)導(dǎo)致
NoClassDefFoundError
或者顯示 "Could not initialize class ClassName" 的錯(cuò)誤
這就是為什么當(dāng) HiveConf
類的靜態(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)文章
mybatis-plus IdWorker生成的Id和返回給前臺(tái)的不一致的解決
這篇文章主要介紹了mybatis-plus IdWorker生成的Id和返回給前臺(tái)的不一致的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn)
本文主要介紹了搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11Spring Cloud如何切換Ribbon負(fù)載均衡模式
這篇文章主要介紹了Spring Cloud如何切換Ribbon負(fù)載均衡模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12IntelliJ?IDEA?2024.2?發(fā)布新功能介紹Spring?Data?JPA即時(shí)查詢、自動(dòng)補(bǔ)全cro
在2024.2?Ultimate版本中,對(duì)?Spring?Data?JPA?的支持做了增強(qiáng),新功能允許您在不運(yùn)行應(yīng)用程序和分析日志文件的情況下查看方法將生成的查詢,下面就來(lái)一起看看這個(gè)版本中推出的幾個(gè)強(qiáng)大新特性2024-08-08SprintBoot深入淺出講解場(chǎng)景啟動(dòng)器Starter
本篇文章將和大家分享一下 Spring Boot 框架中的 Starters 場(chǎng)景啟動(dòng)器的內(nèi)容,關(guān)于 Starters 具體是用來(lái)做什么的,以及在開(kāi)發(fā) Spring Boot項(xiàng)目前,要如何自定義一個(gè) Starters 場(chǎng)景啟動(dòng)器2022-06-06