使用带有openjdk的stix-fonts的例外?

我尝试创建SXSSFWorkbook

exception堆栈跟踪:

 java.lang.ArrayIndexOutOfBoundsException: 0 at sun.font.CompositeFont.getSlotFont(CompositeFont.java:351) at sun.font.CompositeGlyphMapper.initMapper(CompositeGlyphMapper.java:81) at sun.font.CompositeGlyphMapper.(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.(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

问题仅发生在Red hat version 7.4 。 据报道那里 。 红帽子们正在努力解决这个问题 。 我找到的解决方案就是提供字体以强制将Utopia作为java使用的默认字体。

使用以下内容创建以下文件/etc/fonts/local.conf

     serif Utopia   sans-serif Utopia   monospace Utopia   dialog Utopia   dialoginput Utopia   

确保正确的用户可以读取该文件。