解決出現(xiàn) java.lang.ExceptionInInitializerError錯(cuò)誤問(wèn)題
解決出現(xiàn) java.lang.ExceptionInInitializerError錯(cuò)誤問(wèn)題
今天啟動(dòng)一個(gè)項(xiàng)目... 在啟動(dòng)的時(shí)候報(bào)錯(cuò)... 查了半天錯(cuò)誤信息 一直是說(shuō)hibernate緩存管理出錯(cuò)..
最后查看啟動(dòng)時(shí)候的log 發(fā)現(xiàn)在程序中報(bào)Java.lang.ExceptionInInitializerError
查看原因 最后是因?yàn)樽约盒薷牧遂o態(tài)常量是系統(tǒng)啟動(dòng)的時(shí)候自動(dòng)獲取properties值 結(jié)果獲取錯(cuò)誤 導(dǎo)致其在代碼編譯的時(shí)候造成出錯(cuò)
錯(cuò)誤代碼:
public static final String message = getMessage("ok_oj");
原因分析:
message是一個(gè)靜態(tài)常量. 在系統(tǒng)編譯此類(lèi)的時(shí)候 首先會(huì)加載靜態(tài)常量 存放到 內(nèi)存靜態(tài)域之中.
但是因?yàn)樵趩?dòng)的時(shí)候getMessage返回一個(gè)null 使其導(dǎo)致報(bào)錯(cuò)java.lang.ExceptionInInitializerError
下面再說(shuō)java.lang.ExceptionInInitializerError這個(gè)錯(cuò)誤提示
之前很少碰到之類(lèi)異常信息提示 于是網(wǎng)上搜索了下 這個(gè)錯(cuò)誤表示初始化異常和空指針錯(cuò)誤
查看API 其是這樣描述此異常的
靜態(tài)初始化程序中發(fā)生意外異常的信號(hào)。拋出 ExceptionInInitializerError 表明在計(jì)算靜態(tài)初始值或靜態(tài)變量的初始值期間發(fā)生異常。
public class ExceptionInInitializerErrorextends LinkageError
可以看出 他是繼承于LinkageError
對(duì)于LinkageError有給出了描述 顯而易見(jiàn)的指出了問(wèn)題的所在
LinkageError 的子類(lèi)指示一個(gè)類(lèi)在一定程度上依賴(lài)于另一個(gè)類(lèi);但是,在編譯前一個(gè)類(lèi)之后,后一個(gè)類(lèi)發(fā)生了不相容的改變。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- java:java.lang.ExceptionInInitializerError報(bào)錯(cuò)解決過(guò)程
- Mybatis配置錯(cuò)誤:java.lang.ExceptionInInitializerError
- java.lang.ExceptionInInitializerError異常的解決方法
- Java java.lang.ExceptionInInitializerError 錯(cuò)誤如何解決
- Android studio報(bào): java.lang.ExceptionInInitializerError 錯(cuò)誤
- java.lang.ExceptionInInitializerError初始化程序中的異常錯(cuò)誤的解決
相關(guān)文章
idea中service或者mapper引入報(bào)紅的問(wèn)題及解決
在使用IntelliJ IDEA開(kāi)發(fā)SpringBoot項(xiàng)目時(shí),有時(shí)會(huì)遇到Service或Mapper接口引入時(shí)報(bào)紅但不影響項(xiàng)目運(yùn)行的情況,這主要是因?yàn)镮DEA的檢查級(jí)別設(shè)置問(wèn)題,解決方法是將有問(wèn)題的Error級(jí)別改為編譯通過(guò)的安全級(jí)別,即可消除報(bào)紅2024-09-09淺談Storm在zookeeper上的目錄結(jié)構(gòu)
這篇文章主要介紹了淺談Storm在zookeeper上的目錄結(jié)構(gòu)的相關(guān)內(nèi)容,涉及storm使用zookeeper的操作以及詳細(xì)結(jié)構(gòu)圖,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10java多態(tài)性中的Overload和Override區(qū)別詳解
這篇文章主要介紹了java多態(tài)性中的Overload和Override區(qū)別詳解,重寫(xiě)(Overriding)是父類(lèi)與子類(lèi)之間多態(tài)性的一種表現(xiàn),而重載(Overloading)是一個(gè)類(lèi)中多態(tài)性的一種表現(xiàn),需要的朋友可以參考下2023-07-07

利用Java實(shí)現(xiàn)解析網(wǎng)頁(yè)中的內(nèi)容

mybatis返回類(lèi)型map時(shí)如何將key大寫(xiě)轉(zhuǎn)為小寫(xiě)

基于Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng)