У меня есть JAR-файл со связанными ресурсами (бинарные файлы языковой модели), которые необходимо загрузить во время выполнения. Структура каталогов внутри банки:
Таггер / app.class
Таггер / модель / остановка / SentDetect.bin.gz
где SentDetect.bin.gz - это двоичный файл, путь которого загружается в класс третьей стороны (SentDetector) в качестве параметра String, т.е.
URL url = this.getClass().getResource("models/stop/SentDetect.bin.gz");
SentenceDetector sdetector = new SentenceDetector(url.getPath());
Хотя в Netbeans все работает нормально, когда я пытаюсь запустить его как jar из командной строки, я получаю исключение FileNotFound в конструкторе. Я дважды проверил, что бинарный файл включен в скомпилированный файл Jar.
Я полагаю, что решением обычно будет загрузка данных в виде входного потока с использованием getResourceAsStream (), но здесь это не вариант, поскольку URL-адрес передается в качестве параметра String стороннему конструктору, который мне верить, что проблема в том, как URL анализируется на строку?
Я пытался:
url.getPath();
url.getFile();
url.toURI().getPath();
url.toString();
и все дают разные пути к файлу.