今天開發了一個 excel 導出數據的功能,放到 linux 服務器上后發現報錯。
捕獲到 java.lang.reflect.InvocationTargetException 異常,這個異常不太常見,度娘后了解到。
異常原因如下:
在某一個項目 A 中使用了某個 jar 包 x.jar,
而 x.jar 引入了一個類 Y,
應該包含 y.jar 才可以使用 Y 類。
但是 y.jar 沒有被包含到工程中,
這時候就會在項目 A 中拋出 InvocationTargetException。
原來是加載不到 jar 包而使用了這個 jar 包下面的類。
繼續啃源碼終於發現找不到 sun.awt.X11FontManager
解決辦法:容器配置中添加:
-Djava.awt.headless=true
類外附一個關於該配置的博客: