この質問は一般的なものですが、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();
私が抱えている問題は、Amazon の仮想サーバーに適切なフォントがインストールされていないため、アプリケーションで画像/チャート関連の操作を実行できないことです。詳細については、これを参照してください。彼らの顧客サポートは、カスタム VM イメージ (Oracle JDK には一連のフォントが付属しているため、フォントまたは Oracle JDK がインストールされている) を使用することを提案しましたが、これは私にとってクリーンなソリューションではありません。
私の質問は次のとおりです。コードを書き直すか、別の方法でパッケージ化して、追加のフォントを必要とせずに Open JDK の新規インストールで実行できるようにするにはどうすればよいですか (可能な場合)。
ちなみに、ここに私が得ているエラーの一部があります:
2011 年 10 月 9 日 11:05:18 AM org.apache.catalina.core.StandardWrapperValve 呼び出し SEVERE: サーブレット 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(FontDesigns) .java:358) で sun.font.FontDesignMetrics.(FontDesignMetrics.java:349) で sun.font.FontDesignMetrics.
ありがとう