Getting java.awt.HeadlessException on running Jasp

2019-01-26 17:10发布

问题:

I'm getting the error with this code running on Ubuntu 11:

JasperReport jasperReport = JasperCompileManager.compileReport("/resources/etiquetas/etiquetaEndereco.jrxml");
JasperPrint print = JasperFillManager.fillReport(jasperReport, parametros);
JasperViewer.viewReport(print);

Stack:

GRAVE: java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
    at java.awt.Window.<init>(Window.java:432)
    at java.awt.Frame.<init>(Frame.java:403)
    at java.awt.Frame.<init>(Frame.java:368)
    at javax.swing.JFrame.<init>(JFrame.java:158)
    at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:264)

I don't find solution for this error.

回答1:

As Java documentation shows, java.awt.HeadlessException is:

Thrown when code that is dependent on a keyboard, display, or mouse is called in an environment that does not support a keyboard, display, or mouse.

(Source)

and, for java.awt.GraphicsEnvironment:

The GraphicsEnvironment class describes the collection of GraphicsDevice objects and Font objects available to a Java(tm) application on a particular platform.

(Source)

Check if your report source file (etiquetaEndereco.jrxml) is calling fonts that could not be installed on your system.