日期:2014-05-16  浏览次数:20617 次

JFreechart 在linux下不显示及中文乱码问题

一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉,

原因是jfreechart的在linux系统中需要访问java awt库提供的图形功能,而linux下的绝大多数版本的java awt类库都需要x server提供的一些功能。而基本上作服务器的系统都没有启动x server(甚至根本没安装)。

报错如下:

?

X connection to localhost:11.0 broken (explicit kill or server shutdown).

?

我解决方法如下:

vi /etc/profile

?

在最后加上 : export CATALINA_OPTS='-Djava.awt.headless=true'

?

例如:

?

mysqlhome=/usr/local/mysql
PATH=$PATH:$mysqlhome/bin:$PATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
export CATALINA_OPTS='-Djava.awt.headless=true'

二.中文乱码问题

jfreechart报表在linux下中文乱码问题,因为jdk缺少中文字库造成的,解决方法就是加上字库 ,以下方法针对1.6可以生效1.5未测试。

?

?

1.确认%JavaHome%/jre/lib/fonts目录下存在zysong.ttf? simsun.ttf(这个是windows下C:/WINDOWS/simsun.ttc改名而来的)
2.在%JavaHome%/jre/lib/fonts目录下执行"ttmkfdir -o fonts.dir"命令,重新生成fonts.dir文件
3.确认/usr/share/fonts/zh_CN/TrueType目录存在,如果不存在则mkdir创建
4.确认/usr/share/fonts/zh_CN/TrueType目录下存在zysong.ttf? simsun.ttf
5.在%JavaHome%/jre/lib目录下,执行 cp fontconfig.RedHat.3.properties.src fontconfig.properties
6.重新启动tomcat,大功告成!

(有的系统可能 不需要simsun.ttf)

?

?

?

?