Загрузка шрифта как ресурса не удается в банке - PullRequest
0 голосов
/ 01 июля 2018

Я использую пользовательский шрифт, загруженный из ресурса. Этот код прекрасно работает в Eclipse, но выдает ошибку при запуске в качестве jar.

try {
     java.io.InputStream inputStream = getClass().getResourceAsStream("/fonts/xkcd.ttf");
     iybfont = Font.createFont(Font.PLAIN, inputStream); //CRASHES ON THIS LINE
 } catch (Exception e) {
        e.printStackTrace();
        System.out.println(e);
}

При запуске в качестве jar выдает следующую ошибку (из окна командной строки):

java.io.IOException: Problem reading font data.
    at java.awt.Font.createFont0(Unknown Source)
    at java.awt.Font.createFont(Unknown Source)
    at vbday.Start.initialize(Start.java:83)
    at vbday.Start.<init>(Start.java:45)
    at vbday.Start.main(Start.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

Строка 83 показана в комментарии выше

1 Ответ

0 голосов
/ 01 июля 2018

Проблема была с именем файла. Eclipse исправляет неправильный регистр в расширениях, по-видимому, но последний jar не делает.

Изменено .getResourceAsStream("/fonts/xkcd.ttf"); на .getResourceAsStream("/fonts/xkcd.TTF");

...