powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как прочесть файл из ресурсов?
13 сообщений из 13, страница 1 из 1
Как прочесть файл из ресурсов?
    #37866205
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть нечто такое:
Код: java
1.
2.
3.
4.
                SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
                Schema schema = sf.newSchema(new File("com/khmb/badbalance/resources/scheme/offline/WAY4DocFile.xsd"));
                Validator validator = schema.newValidator();
                validator.validate(new DOMSource(xmlDoc));


Как выбрать правильный путь, вместо "com/khmb/badbalance/resources/scheme/offline/WAY4DocFile.xsd"? У меня изначально был путь "/src/main/resources/com/khmb/badbalance/resources/scheme/offline/WAY4DocFile.xsd", но он не подходит, когда программу не из нетбинса запускаю.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866214
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WAY4DocFile.xsd, вероятно находиться среди ваших классов? Соответственно классы могут быть упакованы в jar. Соответственно java.io.File не канает никак.
Можно попробовать
Код: java
1.
sf.newSchema(getClass().getResource("путь к ресурсу относительно класса"));
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866219
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczWAY4DocFile.xsd, вероятно находиться среди ваших классов? Соответственно классы могут быть упакованы в jar. Соответственно java.io.File не канает никак.
Можно попробовать
Код: java
1.
sf.newSchema(getClass().getResource("путь к ресурсу относительно класса"));


Я так и предполагал, именно такой ответ и ждал. Спасибо, сейчас попробую.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866255
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм, путь не получается подобрать. Я так сделал:
Код: java
1.
2.
3.
                SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
                URL url = getClass().getResource("../../../../../resources/com/khmb/badbalance/resources/scheme/offline/WAY4DocFile.xsd");
                Schema schema = sf.newSchema(url);


Может я неправильно как-то путь собираю? Получается нужно пройти на пять папок вверх от класса, который тянет ресурс, и спуститься потом по пути к ресурсу. По-моему нормальный относительный путь. Но не работает.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866262
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"../resources/scheme/offline/WAY4DocFile.xsd" сработало.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866273
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пути исходников кода не обязательно совпадают с путями классов и ресурсов в рантайме.
Покажите нормально где лежат класс и ресурс после сборки проекта.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866899
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПути исходников кода не обязательно совпадают с путями классов и ресурсов в рантайме.
Покажите нормально где лежат класс и ресурс после сборки проекта.
А если пути в рантайме теперь уже точно такие-же, то что делать, если не получается? Как я могу выудить текущий путь, чтобы относительный потом составить? Ну я бы его в мессаджбокс какой-нибудь вывел, чтобы понять, что происходит.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866916
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В рантайме работает, если я делаю
Код: java
1.
url = getClass().getResource("/com/khmb/badbalance/resources/scheme/offline/WAY4DocFile.xsd");


Так что спасибо. Только вот в рантайме вылезла новая ошибка, из которой делаю вывод, что ссылки из этого файла на соседние, таки не работают. Видимо придётся пути которые ссылаются на связанные файлы, тоже переделать.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866948
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если файл лежит рядом с jar-файлом, который изначально запущен, то как его прочесть? У меня там конфиг.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37866953
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я кстати даже понял, почему конфиг не читается. Яж запускаю свою Ява-программу, из другой программы, которая передаёт логин, пароль, и всякое остальное. И видимо домашний путь заимствуется от той программы. Наверное нужно как-то домашний путь чтобы менялся во время запуска, на папку с jar-файлом. Строго говоря я даже не jar запускаю, у меня мавен создаёт exe-шник, с классами, а в папке с экзешником также лежат папка с либами, и папка с jre. Так-что наверное разве что в манифест домашний путь поместить остаётся. Благо в рантайме он всегда будет одинаковый, не считая отладки конечно.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37867040
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoА если файл лежит рядом с jar-файлом, который изначально запущен, то как его прочесть? У меня там конфиг.
Можно через new File(), который, если не указывать абсолютный путь, ищет относительно системного свойства user.dir.
Можно через Class.getProtectionDomain().getCodeSource().getLocation()
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37867043
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XDiaBLoЯ кстати даже понял, почему конфиг не читается. Яж запускаю свою Ява-программу, из другой программы, которая передаёт логин, пароль, и всякое остальное. И видимо домашний путь заимствуется от той программы. Наверное нужно как-то домашний путь чтобы менялся во время запуска, на папку с jar-файлом. Строго говоря я даже не jar запускаю, у меня мавен создаёт exe-шник, с классами, а в папке с экзешником также лежат папка с либами, и папка с jre. Так-что наверное разве что в манифест домашний путь поместить остаётся. Благо в рантайме он всегда будет одинаковый, не считая отладки конечно.
Не знаю сработает ли, но в манифесте можно попробовать в Class-Path указать относительный путь к директории с файлом.
...
Рейтинг: 0 / 0
Как прочесть файл из ресурсов?
    #37867049
Фотография XDiaBLo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczXDiaBLoЯ кстати даже понял, почему конфиг не читается. Яж запускаю свою Ява-программу, из другой программы, которая передаёт логин, пароль, и всякое остальное. И видимо домашний путь заимствуется от той программы. Наверное нужно как-то домашний путь чтобы менялся во время запуска, на папку с jar-файлом. Строго говоря я даже не jar запускаю, у меня мавен создаёт exe-шник, с классами, а в папке с экзешником также лежат папка с либами, и папка с jre. Так-что наверное разве что в манифест домашний путь поместить остаётся. Благо в рантайме он всегда будет одинаковый, не считая отладки конечно.
Не знаю сработает ли, но в манифесте можно попробовать в Class-Path указать относительный путь к директории с файлом.
Я сделал по простому, в командной строке путь к нужной папке передал, неуниверсальное решение, но у меня всего два пути, один в случае рабочей версии, другой при отладке, так что простейшее решение подошло. Потом может и побалуюсь с манифестом, но сейчас проект нужно сдавать, доработать успеется. Спасибо.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как прочесть файл из ресурсов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]