在做某些项目时,有报表功能的JAVA项目总会有不能显示,显示了中文乱码的错误。
1、不能显示的错误。
看日志,总会报 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 的错误。
从表面上看是环境变量设置错误或者是包缺失所致,但是在linux 设置了环境变量
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
这个设置了之后还是不起作用。
之后在加入-Djava.awt.headless=true
weblogic下是在setDomain.sh下的JAVA_OPTIONS的变量下设置;
tomcat 在tomcat配置文件catalina.sh文件中添加 CATALINA_OPTS="-Djava.awt.headless=true",tomcat修改之后还要修改catlina.sh
据说这个是一个JVM的一个BUG所致,好吧,不管咋样,现在可以显示了。
2、显示乱码的问题。
重启了weblogic之后,发现了一堆乱码,之后分析,应该是汉字显示问题。
在/usr/share/fonts下果然没有发现chinese.
之后安装了中文字体,安装方法见:http://blog.csdn.net/nirvana52/article/details/52846707
大概是这么个思路,首先他不是用的fashion chart 或者是silver light之类在客户端实现而是像gd2一样在服务端生成图片来实现的,so ,问题来了:
如果中文显示的话他的字体在哪里找?
肯定是依靠操作系统。
而主机之前接触过,应该是最简安装,连x11之类的桌面都是我后续补上去的。
所以,我建议之后像应用类的服务器还是安装上桌面,还有字体最好将需要的语言也钩上,咱毕竟是在中国,不是在英格丽湿国家。