getResourceAsStream(), вызванный абстрактным классом, возвращающим null

※ Я просмотрел старые вопросы, и ни один из них не решил мою проблему.

У меня возникла проблема с возвратом getResourceAsStream null. Он работает в Eclipse, но не тогда, когда я использую проект в виде файла jar.

Файл jar имеет имя папки config, а в папке config есть файл config file. Я пытаюсь импортировать файл конфигурации, используя приведенный ниже код.

file = "/" + new File(configFolder, configFileName).getPath();
in = this.getClass().getResourceAsStream(file);

Баночка раньше работала. Но теперь, когда я изменил свои коды и поместил код выше в абстрактный класс. Это не работает. getResourceAsStream возвращает ноль.

Я пробовал MyAbstractClass.class.getResourceAsStream(file), но все равно не работает.


person lw29    schedule 18.03.2015    source источник
comment
У вас есть более одного JAR?   -  person user253751    schedule 18.03.2015
comment
Распечатайте file. Убедитесь, что он действительно указывает на существующий файл внутри JAR.   -  person Thilo    schedule 18.03.2015
comment
У меня была только одна баночка. Файл печати дает /config\configfilename.txt. Нужно ли использовать /?   -  person lw29    schedule 18.03.2015
comment
избавиться от обратной косой черты, да. Не используйте File для создания пути. Просто соедините строки.   -  person Thilo    schedule 18.03.2015
comment
Спасибо. Я перешел на конкатенацию строк, и теперь она работает. Не могли бы вы добавить это в свой ответ, чтобы я мог его принять? :)   -  person lw29    schedule 18.03.2015


Ответы (2)


Стандартные одиночные Java-приложения, обратная косая черта не может работать для загрузки файла свойств (файла конфигурации). Но это будет работать в веб-приложениях с обратной косой чертой.

person user3902356    schedule 18.03.2015

Вы сталкиваетесь с проблемами загрузчика классов. Используйте 1_

Если это все еще не работает, возможно, что-то не так с вашим путем к классу или путем к ресурсу.

person Jilles van Gurp    schedule 18.03.2015