Ошибка при исполнении JAR-файла: файл не найден
Я написал небольшую программу, которая генерирует табличку с текстом. Сами таблички реализованы через itextpdf. Для того, чтобы табличка корректно отображала кириллицу, я использую шрифт Helvetica.
Переменной FONT передается расположение шрифта, который находится в папке Resources
public static void main(String[] args) throws IOException {
String FONT = "./src/main/resources/HelveticaRegular.ttf";
Но когда я собираю *.jar файл, после попытки запуска в консоли выводится сообщение:
Exception in thread "main" com.itextpdf.io.IOException: Font file ./src/main/resources/HelveticaRegular.ttf not found.
Если передавать полный путь к файлу, например:
public static void main(String[] args) throws IOException {
String FONT = "C:\\Users\\megavatt\\Desktop\\HelveticaRegular.ttf";
то программа работает корректно.
Проблема в том, что я должен доставлять файл со шрифтом, для того, чтобы приложение работало, но мне неизвестна директория пользователя. Я могу как-то запустить приложение в консоли с тем шрифтом, который находится в папке resources?
Сделал вот так,
InputStream in = getClass().getClassLoader().getResourceAsStream("/HelveticaRegular.ttf");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
И появилась ошибка:
> Exception in thread "main" java.lang.NullPointerException
at java.base/java.io.Reader.<init>(Reader.java:168)
at java.base/java.io.InputStreamReader.<init>(InputStreamReader.java:76)
at main.java.Main$1Font.<init>(Main.java:28)
at main.java.Main.main(Main.java:35)