1
我使用下面的代碼在windows下正常工作生成碧玉報告。 賈斯珀報告中的字體被嵌入。使用maven依賴jasperreports-fonts將字體導入到應用程序中。特別是DeJaVu Sans。爲什麼在Linux下得到這個字體問題?
JasperDesign jasperDesign = JRXmlLoader.load(jasperStream);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, jrDataSource);
JasperViewer.viewReport(jasperPrint, false);
但是,當在Linux環境中部署應用程序時,它顯示下面的錯誤;
java.lang.ExceptionInInitializerError
Caused by: net.sf.jasperreports.engine.JRRuntimeException: java.io.IOException: Problem reading font data.
at net.sf.jasperreports.engine.fonts.SimpleFontFace.<init>(SimpleFontFace.java:108)
at net.sf.jasperreports.engine.fonts.SimpleFontFace.<init>(SimpleFontFace.java:128)
at net.sf.jasperreports.engine.fonts.SimpleFontFace.getInstance(SimpleFontFace.java:67)
at net.sf.jasperreports.engine.fonts.SimpleFontFamily.setNormal(SimpleFontFamily.java:99)
Caused by: java.io.IOException: Problem reading font data.
at java.awt.Font.createFont0(Font.java:1000)
at java.awt.Font.createFont(Font.java:877)
不幸的是沒有任何建議的工作。如果我把無頭真正然後它拋出異常java.awt.HeadlessException, 我使用碼頭服務器 – n1ckgun
@ n1ckgun我仍然認爲這是一個臨時目錄問題,也許這可以幫助http://www.eclipse.org/jetty /documentation/current/ref-temporary-directories.html –
我所做的是我試圖通過指定臨時目錄來啓動jetty,如下所示: /usr/bin/java -Djetty.state =/jetty/jetty.state -Djetty .port = 8080 -Xmx1024m -Djetty.logs =/jetty/logs/-Djetty.home =/jetty -Djava.io.tmpdir =/jetty/tempdir -jar /jetty/start.jar etc/jetty-logging.xml等/jetty-started.xml 其中/ jetty/tempdir沒有權限問題 – n1ckgun