Apache POI 3.10 autoSizeColumn失败

时间:2014-04-02 13:32:14

标签: java awt apache-poi

Caused by: java.lang.NoClassDefFoundError: Could not initialize class java.awt.Font
        at java.awt.font.TextLayout.singleFont(TextLayout.java:468)
        at java.awt.font.TextLayout.<init>(TextLayout.java:527)
        at org.apache.poi.ss.util.SheetUtil.getColumnWidth(SheetUtil.java:208)
        at org.apache.poi.xssf.usermodel.XSSFSheet.autoSizeColumn(XSSFSheet.java:386)

我的环境如下:

java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

nogui和java.awt.headless =未设置true标志。

1 个答案:

答案 0 :(得分:5)

来自Apache POI QuickGuide entry on "How to adjust column width to fit the contents"

  

警告

     

计算列宽Sheet.autoSizeColumn使用在图形环境不可用时抛出异常的Java2D类。如果图形环境不可用,您必须告诉Java您正在无头模式下运行并设置以下系统属性:java.awt.headless = true

你说你既不在图形环境中运行,也不在无头运行。如快速指南所示,如果您想要进行图形化操作(例如调整字体大小),则必须运行图形环境无头启用