8

LinuxとzkossのWindowsで同じコードのjfreechartを使用しています。

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)
4

5 に答える 5

17

Ubuntuでは、次の方法でフォントをインストールできます

    sudo apt-get install ttf-dejavu

または、CentOS を使用している場合は、次の方法でフォントをインストールできます。

    yum install dejavu*
于 2013-10-14T07:24:32.687 に答える
3

open JDKに問題があるようです。Open jdk でこの問題を修正するための解決策を示したリンクを次に示します。sun jdk を使用しても問題がなければ、sun jdk をインストールしてみてください。

于 2012-12-28T14:01:20.600 に答える
0

Windowsアプリケーションに必要な同じフォントをLinuxフォント ディレクトリに配置してみてください。

于 2012-12-28T08:09:34.920 に答える