解決出現java.lang.ExceptionInInitializerError錯誤問題
今天啟動一個項目... 在啟動的時候報錯... 查了半天錯誤信息一直是說hibernate緩存管理出錯..
最後查看啟動時候的log 發現在程序中報Java.lang.ExceptionInInitializerError
查看原因最後是因為自己修改了靜態常量是系統啟動的時候自動獲取properties值結果獲取錯誤導致其在代碼編譯的時候造成出錯
錯誤代碼:
public static final String message = getMessage("ok_oj");原因分析:
message是一個靜態常量. 在系統編譯此類的時候首先會加載靜態常量存放到內存靜態域之中.
但是因為在啟動的時候getMessage返回一個null 使其導致報錯java.lang.ExceptionInInitializerError
下面再說java.lang.ExceptionInInitializerError這個錯誤提示
之前很少碰到之類異常信息提示於是網上搜索了下這個錯誤表示初始化異常和空指針錯誤
查看API 其是這樣描述此異常的
靜態初始化程序中發生意外異常的信號。拋出ExceptionInInitializerError 表明在計算靜態初始值或靜態變量的初始值期間發生異常。
public class ExceptionInInitializerErrorextends LinkageError
可以看出他是繼承於LinkageError
對於LinkageError有給出了描述顯而易見的指出了問題的所在
LinkageError 的子類指示一個類在一定程度上依賴於另一個類;但是,在編譯前一個類之後,後一個類發生了不相容的改變。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!