Java でゲームを一緒にハックしようとしていますが、ダウンロードしたカスタム フォントを開始画面で使用しました。Eclipse からプログラムを実行すると、画面は次のようになります (本来あるべき姿)。
ただし、コンパイルされた jar からプログラムを実行すると、画面は次のようになります。
フォントをロードするための私のコードは次のとおりです。
title = new JLabel("philip k. dick"); // font requires all lowercase
try {
Font f = Font.createFont(Font.TRUETYPE_FONT, new File(Util.getFile("all used up.ttf")));
title.setFont(new Font(f.getName(), f.getStyle(), 150));
} catch (Exception e) {
e.printStackTrace();
Font oldFont = title.getFont();
title.setFont(new Font(oldFont.getName(), oldFont.getStyle(), 100));
}
このメソッドUtil.getFile
は、指定された の先頭に「resources/」を追加するだけString
です。
コマンド ラインから jar を実行しても、エラーは発生しません。「リソース」フォルダーの名前を変更すると(アクセスを防ぐため)、画面が次のようになるため、プログラムがフォントリソースにアクセスできることはわかっています。
さらに、次のエラーが表示されます。
java.io.IOException: Can't read resources/all used up.ttf
もちろん、これは想定内です。
また、同じ場所から他のオーディオ リソースと画像リソースが読み込まれていることにも注意してください。これらは正常に動作します。この場所は、jar のすぐ外側のフォルダーにあります。また、Mac を使用していますが、Windows でも同じ問題が発生します。