我使用相同的jfreechart代码在
linux和
Windows与zkoss.
当我在Windows中运行相同的代码它运行正常,但在Linux中它给出了字体相关的错误….
任何人都可以建议我如何永久解决这个问题?
java.lang.Error:可能的致命错误:找不到字体.
sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1087) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1070) sun.font.FontManager.initialiseDeferredFont(FontManager.java:959) sun.font.FontManager.findOtherDeferredFont(FontManager.java:898) sun.font.FontManager.findDeferredFont(FontManager.java:915) sun.font.FontManager.findFont2D(FontManager.java:1903) sun.font.FontManager.findFont2D(FontManager.java:1864) java.awt.Font.getFont2D(Font.java:477) sun.font.FontManager.getFont2D(Native Method) sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:356) sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:349) sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:301) sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:787) org.jfree.text.TextFragment.calculateDimensions(TextFragment.java:229) org.jfree.text.TextLine.calculateDimensions(TextLine.java:190) org.jfree.text.TextBlock.calculateDimensions(TextBlock.java:171) org.jfree.chart.block.LabelBlock.arrange(LabelBlock.java:316) org.jfree.chart.block.BorderArrangement.arrangeNN(BorderArrangement.java:210) org.jfree.chart.block.BorderArrangement.arrange(BorderArrangement.java:137) org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:179) org.jfree.chart.block.CenterArrangement.arrangeNN(CenterArrangement.java:284) org.jfree.chart.block.CenterArrangement.arrange(CenterArrangement.java:98) org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:179) org.jfree.chart.block.FlowArrangement.arrangeNN(FlowArrangement.java:365) org.jfree.chart.block.FlowArrangement.arrangeRR(FlowArrangement.java:283) org.jfree.chart.block.FlowArrangement.arrange(FlowArrangement.java:158) org.jfree.chart.block.BlockContainer.arrange(BlockContainer.java:179) org.jfree.chart.title.LegendTitle.arrange(LegendTitle.java:501) org.jfree.chart.JFreeChart.drawTitle(JFreeChart.java:1330) org.jfree.chart.JFreeChart.draw(JFreeChart.java:1220)
解决方法
在Ubuntu下你可以安装字体
sudo apt-get install ttf-dejavu
或者如果你使用CentOS,你可以通过安装字体
yum install dejavu*