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