Linux上 Can't connect to X11 window server 错误解决方法

Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost:11.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at java.awt.Font.initializeFont(Font.java:308)
at java.awt.Font.<init>(Font.java:344)
at org.jfree.chart.axis.AxisConstants.<clinit>(Unknown Source)
at org.jfree.chart.axis.Axis.<init>(Unknown Source)
at org.jfree.chart.axis.CategoryAxis.<init>(Unknown Source)
at org.jfree.chart.ChartFactory.createLineChart(Unknown Source)

我做了一个验证码图片自动生成器,windows上正常;linux上就报以上错误

原因是windows内核集成了gui,而linux上没有启动x server

解决办法:

1。启动x server

2。在java运行参数上加-Djava.awt.headless=true

我修改了应用服务器的启动文件。比如tomcat.
/bin/catalina.sh
在所有的 -Dcatalina.home="$CATALINA_HOME" \下面都加上了 -Djava.awt.headless=true \
这样做似乎有些笨,但毕竟解决了问题。

你可能感兴趣的:(java,tomcat,linux,windows,sun)