在进行某项目实施时,发现 JFreeChart 对于中文标题不支持,环境是红旗 4.0+tomcat。在网上查阅了一些资料,总结出了以下的解决方法:
首先,分析其根本原因,并进行测试测试,发现JFreeChart中文乱码的问题是JRE没有找到中文字库,解决方法如下:
1. 从网上下载javacn.zip;地址为:
http://www.snowywolf.net/myfolder/tools/javacn.zip
如果下载失败,我可以提供这个包。以下操作使用 root用户
2. 将javacn.zip ftp到/tmp下
# cd /tmp
#unzip javacn.zip
# vi $HOME/.bash_profile
在export PATH前加入下面一段
JAVA_HOME=/home/tomcat/JDK的路径
export JAVA_HOME
JRE=$JAVA_HOME/jre
export JRE
PATH=$JAVA_HOME/bin:$JRE/bin:$PATH
执行 . .bash_profile 这样设置的环境变量就生效了
3. 安装系统字体--
下面需要将$JRE/lib中的font.properties文件改名备份,并将/tmp/javacn中的font.properties文件拷贝到$JRE/lib中
# cd $JRE
# cd lib
#mkdir fontbak
#mv font.pro* fontbak
# cp /tmp/javacn/font.properties ./
#chmod 777 font.properties
4. 修改/tmp/javacn/sm.sh,注释或者删除里面的reboot;否则操作系统自动重启。
5. 执行/tmp/javacn/sm.sh,出现错误后,不用处理。
6. 先复制simsun.ttf(宋体)simsun18030.ttf(新宋体)tahomabd.ttf tahoma.ttf到$JAVA_HOME/jre/lib/fonts下
7. 在 $JAVA_HOME/jre/lib/fonts 下执行:
ttmkfdir>fonts.dir命令;接着用vi编辑fonts.dir文件,将下面内容添加进去
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-ascii-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-iso10646-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-15
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-c-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-m-0-gb2312.1980-0
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gbk-0
然后执行 #cat fonts.dir>font.scale
执行chown tomcat:tomcat *
8. 执行完此操作后,java虚拟机就可以支持中文了
9. 到tomcat用户下,重新启动 tomcat。
补充一下:JFreeChart可通过修改源代码的方式指定它使用的字体。所以可以不安装字体,而选择适用系统字体解决中文问题。

