Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jFreechart在linux计算机中不显示_Java_Jsp_Jfreechart - Fatal编程技术网

Java jFreechart在linux计算机中不显示

Java jFreechart在linux计算机中不显示,java,jsp,jfreechart,Java,Jsp,Jfreechart,Jsp ”> 我在jsp中有上面的代码来使用jfreechart。我已经在window machine的tomcat中部署了这个应用程序,它的工作非常完美。但当我在linux机器的tomcat中复制相同的文件时,除了图表之外,jsp的所有其他内容都会显示出来 为什么在使用linux tomcat运行web应用程序时不显示图表 当我直接输入servlet作为URL时,我发现以下异常 <img alt="" src='<%=url+"/chartDemo/servlet/ChartDe

Jsp

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

为什么在使用linux tomcat运行web应用程序时不显示图表

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

<img alt="" src='<%=url+"/chartDemo/servlet/ChartDemoServlet"%>'>
java.lang.Error:可能的致命错误:找不到字体。
sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1088)
sun.font.FontManager.initialiseDeferredFont(FontManager.java:967)
sun.font.CompositeFont.DoDeferredInitialization(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)
FontDesignMetrics.java:349
FontDesignMetrics.getMetrics(FontDesignMetrics.java:301)
sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:790)
org.jfree.text.g2textmasurer.getStringWidth(g2textmasurer.java:79)
org.jfree.text.TextUtilities.nextLineBreak(TextUtilities.java:294)
org.jfree.text.TextUtilities.createTextBlock(TextUtilities.java:235)
org.jfree.chart.title.TextTitle.Arranger(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.createBuffereImage(JFreeChart.java:1404)
org.jfree.chart.JFreeChart.createBuffereImage(JFreeChart.java:1384)
org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:183)
org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:136)
docost(ChartDemoServlet.java:170)
doGet(ChartDemoServlet.java:64)
javaservlet.http.HttpServlet.service(HttpServlet.java:617)
javaservlet.http.HttpServlet.service(HttpServlet.java:717)

是的,@Tom是对的;查找使用过的字体。早些时候,没有桌面的Linux也没有可用的字体(所谓的headless环境),可以通过GraphicsEnvironment.ishadless()和
System.getProperty(“java.awt.headless”)进行测试。您可能只需复制字体并进行注册即可。

我认为生成图表的servlet也已被复制(或者是同一项目的一部分,或者在您的网络中的某个位置可用)。它对其他mchines有效吗?检查附加到“/chartDemoservlet/chartDemoservlet”路径的“url”发生了什么变化。我不知道您是如何设置的,但它可能取决于服务器设置(使用不同的端口等)。尝试用request.getServerName()+“:”+request.getServerPort()替换url。此错误是由于缺少通常作为JRE的一部分安装的字体造成的。您使用OpenJDK还是Oracle?我建议您在linux机器上切换到Oracle。
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)