Как правильно упаковать ресурсы в Jar
Я знаю, что есть другие вопросы, касающиеся та же проблема, но дело в том, что решения для меня не работают.
У меня есть небольшой инструмент, который должен читать файлы, которые я хочу иметь и упаковывать как ресурсы, и полагаться на другие проекты (я использую Eclipse Helios), которые я бы хотел использовать в качестве jars вместо отдельных классов.
Как приложение в Eclipse, я могу получить доступ к своим ресурсам через
String path = MyClass.class.getClassLoader().getResource("resources/" + name + ".SOURCE").getPath();
System.out.println(path);
File file = new File(MyClass.class.getClassLoader().getResource("resources/" + name + ".SOURCE").toURI());
defaultSource = readSOURCEFile(file);
тогда и только тогда, когда я помещаю папку ресурсов в выходной путь (скомпилированные источники) NOT, если я поместил ее в папку src.
Когда я упаковываю проект, ресурсы в корневой папке или в папке классов вообще не упаковываются. Если у меня есть ресурсы в моей папке src, она будет упакована в src/resources.
Я использую Export - Runnable Jar, что я делаю неправильно?
Если я попытаюсь использовать Export-Jar, я могу правильно настроить исходные файлы и ресурсы, но у меня возникают проблемы с настройкой основного класса и невозможностью выполнить банку. Манифест правильный и класс есть: - (.
Вторая проблема: в упакованном банке я получаю ошибку: URI не является иерархическим (после того, как я переместил ресурсы в банке вручную, я мог бы выполнить банку)
Спасибо заранее!
Я связал источники в рабочей области, это проблема?
Ответы
Ответ 1
Отметьте папку resource
в корневой папке проекта как "Исходную папку" в Eclipse (щелкните правой кнопкой мыши по папке, перейдите к "Путь сборки" > "Использовать в качестве исходной папки" ). Затем прочитайте следующие ресурсы:
InputStream is = MyClass.class.getClassLoader().getResourceAsStream(name + ".SOURCE");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();