在 Linux 环境下报错 java.lang.reflect.InvocationTargetException
今天开发了一个 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
类外附一个关于该配置的博客: