在 Linux 环境下报错 java.lang.reflect.InvocationTargetException

时间:2021-06-25 04:14:58

今天开发了一个 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

类外附一个关于该配置的博客:

http://dikar.iteye.com/blog/1417625