这个问题是通用的,但也与 Amazon Web Services 有关。
我正在尝试将 Java 应用程序部署到 Amazon 云服务器,但该应用程序无法启动,因为它使用 AWT 字体(请参阅以下行):
TextImage testImage = new TextImageImpl(128, 32, new Margin(0, 8));
// Declare or read the fonts you need
Font header = new Font("Sans-Serif", Font.BOLD, 24);
// 1. specify font and write text with a newline
testImage.useFont(header).writeLine(text).newLine();
我遇到的问题是亚马逊的虚拟服务器没有安装正确的字体,因此您无法在应用程序中执行与图像/图表相关的内容。有关更多信息,请参阅此。他们的客户支持建议使用自定义 VM 映像(安装了字体或 Oracle JDK,因为 Oracle JDK 带有一组字体),这对我来说不是一个干净的解决方案。
我的问题是:我怎样才能重写我的代码,或者以不同的方式打包它,以便它在 Open JDK 的全新安装上运行,而不需要额外的字体(如果可能的话)。
顺便说一句,这是我得到的错误的一部分:
2011 年 10 月 9 日上午 11:05:18 org.apache.catalina.core.StandardWrapperValve 调用严重:servlet ZipGrocery 应用程序的 Servlet.service() 引发异常 java.lang.Error:可能的致命错误:未找到字体。在 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.(FontDesignMetrics.java:349) 在 sun.font.FontDesignMetrics。
谢谢