2017-10-12 21 views
2

SXSSFWorkbookを作成しようとすると問題が発生します。openjdkでstix-fontを使用した場合の例外はありますか?

例外スタックトレース:

java.lang.ArrayIndexOutOfBoundsException: 0 
    at sun.font.CompositeFont.getSlotFont(CompositeFont.java:351) 
    at sun.font.CompositeGlyphMapper.initMapper(CompositeGlyphMapper.java:81) 
    at sun.font.CompositeGlyphMapper.<init>(CompositeGlyphMapper.java:62) 
    at sun.font.CompositeFont.getMapper(CompositeFont.java:409) 
    at sun.font.CompositeFont.canDisplay(CompositeFont.java:435) 
    at java.awt.Font.canDisplayUpTo(Font.java:2063) 
    at java.awt.font.TextLayout.singleFont(TextLayout.java:470) 
    at java.awt.font.TextLayout.<init>(TextLayout.java:531) 
    at FontTest.main(FontTest.java:15) 

のGradleファイル:

compile 'org.apache.poi:poi:3.14' 
compile 'org.apache.poi:poi-ooxml:3.14' 

環境:

  • OpenJDKのバージョン "1.8.0_141"
  • のRedHat 7.4
  • wildfly 10.0.0

答えて

5

問題はRed hat version 7.4でのみ発生しました。 thereと報告されています。 と赤い帽子の男はそれを修正するために働いていますhere。 私が見つけた解決策は、ユートピアをJavaで使用されるデフォルトのフォントとして強制的に戻すためにフォントを提供することです。

<?xml version='1.0'?> 
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> 
<fontconfig> 
    <alias> 
    <family>serif</family> 
    <prefer><family>Utopia</family></prefer> 
    </alias> 
    <alias> 
    <family>sans-serif</family> 
    <prefer><family>Utopia</family></prefer> 
    </alias> 
    <alias> 
    <family>monospace</family> 
    <prefer><family>Utopia</family></prefer> 
    </alias> 
    <alias> 
    <family>dialog</family> 
    <prefer><family>Utopia</family></prefer> 
    </alias> 
    <alias> 
    <family>dialoginput</family> 
    <prefer><family>Utopia</family></prefer> 
    </alias> 
</fontconfig> 

は、ファイルが正しいユーザーによって読み取り可能であることを確認してください:

は、次の内容の次のファイル/etc/fonts/local.confを作成します。

+0

同じソリューションは 'CentOS Linux release 7.4.1708(Core)'でも動作します。 'sudo chmod 644/etc/fonts/local.conf'を確認してください。 –

関連する問題