gpt4 book ai didi

java - jFreechart 不显示在 linux 机器上

转载 作者:行者123 更新时间:2023-11-30 11:44:30 26 4
gpt4 key购买 nike

JSP

<img alt="" src='<%=url+"/chartDemo/servlet/ChartDemoServlet"%>'>

我在jsp中有上层代码来使用jfreechart。我已经在窗口机器的 tomcat 中部署了这个应用程序,它的工作非常完美。但是当我在我的 linux 机器的 tomcat 中复制相同的文件时,会显示除图表之外的所有其他 jsp 内容。

为什么当我使用 linux tomcat 运行 Web 应用程序时不显示图表?

当我直接输入 servlet 作为 URL 我发现以下异常

java.lang.Error: Probable fatal error:No fonts found.
sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1088)
sun.font.FontManager.initialiseDeferredFont(FontManager.java:967)
sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:254)
sun.font.CompositeFont.getSlotFont(CompositeFont.java:334)
sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:77)
sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93)
sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:358)
sun.font.FontDesignMetrics.<init>(FontDesignMetrics.java:349)
sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:301)
sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:790)
org.jfree.text.G2TextMeasurer.getStringWidth(G2TextMeasurer.java:79)
org.jfree.text.TextUtilities.nextLineBreak(TextUtilities.java:294)
org.jfree.text.TextUtilities.createTextBlock(TextUtilities.java:235)
org.jfree.chart.title.TextTitle.arrangeRR(TextTitle.java:628)
org.jfree.chart.title.TextTitle.arrange(TextTitle.java:497)
org.jfree.chart.JFreeChart.drawTitle(JFreeChart.java:1316)
org.jfree.chart.JFreeChart.draw(JFreeChart.java:1204)
org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1404)
org.jfree.chart.JFreeChart.createBufferedImage(JFreeChart.java:1384)
org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:183)
org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:136)
com.ChartDemoServlet.doPost(ChartDemoServlet.java:170)
com.ChartDemoServlet.doGet(ChartDemoServlet.java:64)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

最佳答案

是的,@Tom 是对的;寻找使用过的字体。早些时候,没有桌面的 Linux 也没有可用的字体(所谓的 headless 环境),可通过 GraphicsEnvironment.isHeadless() 和 System.getProperty("java.awt.headless"); 进行测试。不过,您可能只需复制字体并执行 registerFont。

关于java - jFreechart 不显示在 linux 机器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com