公司项目中要求用JFreechart统计图表显示. 这部分代码几乎全是由别人写的,后来撤啦,全部的代码扔给了我,慢慢的去看了,大概了解了一下实现过程,无非是调用Jfreechart里面的一些方法吧了,不是太难,以前别人发布显示正常不正常我不知道,但接手过来后在我的机器上显示正常的,程序不出错人就是最轻松的啦,有空干自己想干的事情.
现在要把这些东东移到linux上去啦,对linux也不熟,一边问人一边在网上找答案,
总算是装上JDK与服务器啦,接下来发布应用程序,一步步功能测试下来.没什么,可是到了图表显示的地方,却总是出错,
点击显示饼图时出现如下错;
Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
在显示饼图时提供了一个显示三维图像的选项,当选中那个选项后又出现如下错:
org.apache.jasper.JasperException: org.jfree.chart.plot.PiePlot
还有几个图表,边界图,曲线图等,有的显示出错信息,有的页面一片空白,开始还以为程序代码有问题.想了想也觉得不可能,后来又以为自己代码没有与我机器上发布的相一致,又重新覆盖了一次,再试,:( 还是一样,花费了我好长时间,最后还是去问了一朋友,他告诉我啦.
原来这个错:"Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable."的原因是:
"这个错误是因为图表程序是通过AWT实现的,AWT会调用操作系统本地窗口资源绘图,windows对此支持很好,在linux下如果没有进到X window,AWT就不能绘图",
上面这句话是朋友告诉我的,我在启动服务器时是先启运到窗口模式下的,为什么就是不行呢,,后来,却这样轻松地解决的,
,打开字符终端,在那里输入如下:
export DISPLAY=:0
然后用set来看看,如果export DISPLAY=:0已经存在,表示设置已经好啦,然后再试,哦,不是不行,后一重启机器,^_^ 可爱的图表显示出来啦,
让我大松一口气,对于不同的机器,可能有的不用重启就可生效,呵呵,如果有朋友也像我这样遇到同样的问题,而找不到答案时,参考一下,或许会有所帮助。祝愿每一位朋友每天都能有所收获。
现在误出一个真理,写程序不要怕出问题,问题出得越多见得越多,了解得越多,也逼着你去学更多的东西,想更多的解决办法。也可能会让你更深的理解什么是程序,什么是编程。呵呵,经验就是从出问题时开始积累的。