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

一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库提供......


一.使用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‘
例如:
Java代码  
1.mysqlhome=/usr/local/mysql   
2.PATH=$PATH:$mysqlhome/bin:$PATH   
3.export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC   
4.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字体

如何支持带中文的图像
问题描述:
用户数量图、资金占比图等使用jfreechart开发的图像,中文显示为乱码
问题原因:
Linux上的jdk6(jre)本身不支持中文。
问题解决:
1)把XP下的字体C:\WINDOWS\FONTS\simsun.ttc(也就是宋体,大小为10M),把他重命名为 simsun.ttf。
2)拷贝simsun.ttf 字体到 /usr/share/fonts/zh_CN/TrueType/ 下
3)在linux命令行下执行:
fc-cache /usr/share/fonts/zh_CN/TrueType/ 字体安装完成了,就可以使用这个字体

程序中解决方案:
font =new Font("宋体",Font.PLAIN,12);
    chart.setTitle(new TextTitle("",font.deriveFont(14f)));
    CategoryPlot plot = (CategoryPlot)chart.getPlot();
    CategoryAxis categoryAxis = plot.getDomainAxis();
    categoryAxis.setTickLabelFont(font.deriveFont(12f));
    categoryAxis.setLabelFont(font.deriveFont(12f));
    //categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    //设置角度
    NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();                
    numberAxis.setLabelFont(font.deriveFont(12f));         
    numberAxis.setTickLabelFont(font.deriveFont(12f));
    //plot.set
        chart.getTitle().setFont(font.deriveFont(14f)); // 设置标题字体
        //chart.getLegend().setItemFont(font);// 设置图例类别字体
        LegendTitle legendTitle = chart.getLegend(0);
        if (legendTitle != null){
            legendTitle.setItemFont(font.deriveFont(12f));
        }

文档来源:JFreechart在linux下不显示及中文乱码问题

时间: 2024-10-10 06:36:39

JFreechart在linux下不显示及中文乱码问题的相关文章

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 s

Linux下关于解决JavaSwing中文乱码的情况

1.下载simsun.ttc(宋体).http://download.csdn.net/detail/lazy_p/4436971 2.linux中跳转到JDK安装目录 ..../jre/lib/fonts 3.sudo mkdir fallback  然后将Windows所拷贝的字体放到fallback中 相关解决网址 http://www.linuxidc.com/Linux/2009-10/21991.htm http://www.cnblogs.com/zhangyongli2011/a

Linux 下MySQL显示中文字符

1.首先停止MySQL服务:sudo /etc/init.d/mysql stop 2.然后编辑MySQL配置文件:sudo gedit /etc/mysql/my.cnf 在my.cnf文件中的[client]段下面加入 default-character-set=utf8[mysqld_safe]default-character-set=utf8[mysqld]default-character-set=utf8[mysql]default-character-set=utf8 重新启动M

Linux下PHP+MySQL+CoreSeek中文检索引擎配置

说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装coreseek中文检索引擎,配置MySQL数据库访问接口,使用PHP程序实现中文检索. CoreSeek官方网站: http://www.coreseek.cn/ http://www.coreseek.cn/products/=%22/products-install/step_by_step/ h

Linux 下shell显示-bash-4.1$不显示用户名路径的解决方法

Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: 而不是我们经常看到的[email protected]的组合,看起来很不舒服. 解决方案: 问题的原因是因为没有配置.bash_profile的问题,可以通过配置这个文件来解决问题. 1.在Terminal输入: vi ~/.bash_profile 2.如果没有.bash_profile可以自己添加.然后往文件中添加如下内容:e

Linux下grep显示前后几行信息

Linux下grep显示前后几行信息 标准unix/linux下的grep通过下面參数控制上下文 grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行grep -B 5 foo file 显示foo及前5行grep -A 5 foo file 显示foo及后5行 查看grep版本号的方法是grep -V 假 设想升级,升级的方法:最新的源代码(google或者百度搜索主页),编译安装到某个地方,比方 /home/aaa/bin/ 那么以后用的时候就用 /home

Linux下Google Chrome / Chromium标题栏乱码问题

最近在使用Chromium的时候tab的标题栏中文显示乱码,在地址栏输入中文是同样时乱码,就像下图: 看起来很是不爽,于是只好换做用系统自带的Fire Fox,但是用户习惯真的很强大啊....根本用不习惯....在网上搜了好久,终于看到了一篇比较靠谱的博文:Linux下Chrome标题栏中文乱码.试了一下,果然有效. 主要就是修改/etc/fonts/conf.d/49-sansserif.conf这个文件,截图如下: 需要将图中17行(<string>sans-serif</strin

windows中的txt文件上传到linux中,打开出现中文乱码

问题:在windows中显示正常的文件,上传到linux中,打开出现中文乱码. 解决方案:使用iconv命令 例如:iconv -f gbk -t utf8 shujujiegou.txt > shujujiegou.txt.utf8 原文地址:https://www.cnblogs.com/huangtao1927/p/8660815.html

win7下zend studio5.5中文乱码解决方法

win7下zend studio5.5中文乱码解决方法 1.打开 C:Documents and SettingsAdministratorZDEconfig_5.5desktop_options.xml(这个地址要根据自己的电脑而定.) 2.查找 editing.encoding 3.修改里面为 <encoding name=”UTF-8″/> 4.保存,并将该文件属性设置为只读,否则zend每次启动都会将 desktop_options.xml 初始化 5.重启 zend 注意,你现在打开