powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Файлы из папки resources
25 сообщений из 40, страница 1 из 2
Файлы из папки resources
    #38777037
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Вопрос очень простой и потому мне стыдно задавать его более опытным товарищам. В папке resources я положил несколько шаблонных файлов. Если при запуске к ним указывать прямой (полный) путь, то все работает ок. Также работает, если указать путь относительно Working Directory в настройках Run/Edit Configurations.

Мне же хотелось бы указывать имя файла в папке resources, тем более, что в настройках проекта эта папка у меня настроена, как папка ресурсов.

Гугл выдает Мавен, JSF, Spring и т. д. У меня же намного все примитивнее, но тем не менее даже примитивное должно работать должным образом
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777040
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Class.getResourceAsStream()
ClassLoader.getResourceAsStream()
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777064
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczClass.getResourceAsStream()
ClassLoader.getResourceAsStream()

А если мне нужны файлы по названиям (чтобы передать их как параметр), а не InputStream
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777069
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoА если мне нужны файлы по названиям (чтобы передать их как параметр), а не InputStream
Можно getResource(), но лично мне он не импонирует, и я его стараюсь избегать.
Локальные пути в проекте это строки. На худой конец URI.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777080
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще маленькая деталь - getResource может вернуть не только файл. Например, resources может быть запакован в jar файл.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777091
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfЕще маленькая деталь - getResource может вернуть не только файл. Например, resources может быть запакован в jar файл.
getResource() не может "вернуть файл". Только URL. Просто в некоторых экзотических средах может оказаться что системного хэндлера для такого URL не предусмотрено, его только ClassLoader понимает.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777096
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

не совсем :)
Попробуйте для ресурса из jar-файла вызвать classLoader.getResource(resName).getFile()
Получите исключение, что URL до ресурса в jar-нике нельзя преобразовать в файл.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777112
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfПопробуйте для ресурса из jar-файла вызвать classLoader.getResource(resName).getFile()

Да, с фига ли???

scfПолучите исключение, что URL до ресурса в jar-нике нельзя преобразовать в файл.
URL getFile() это не java.io.File а конкретная часть пути URL. Извольте объясниться.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777135
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут проблема в том, что это не какое-то консольное приложение. А большой проект, состоящий из кучи проектов.

Проект работает под Томкат, мне предложили такой вариант System.getProperty("catalina.home") и дальше плясать от этого.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777158
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoТут проблема в том, что это не какое-то консольное приложение. А большой проект, состоящий из кучи проектов.
Нет. Тут проблема в том что вы не пытаетесь объяснить что именно вы делаете. А бодаетесь с граблями, которые себе сами же и подложили.

GeronemoПроект работает под Томкат, мне предложили такой вариант System.getProperty("catalina.home") и дальше плясать от этого.
О переносе на другой контейнер и речи ведь не может быть. Правда?
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777232
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczGeronemoТут проблема в том, что это не какое-то консольное приложение. А большой проект, состоящий из кучи проектов.
Нет. Тут проблема в том что вы не пытаетесь объяснить что именно вы делаете. А бодаетесь с граблями, которые себе сами же и подложили.


Коммерческая тайна, понимаете ли ))

Ладно. Чуть больше инфы. Надо построить несколько отчетов в excel. Вся логика для этого уже готова (т. е. у меня есть уже данные в удобном для меня виде). Осталось запихать их в excel документ. Для этого есть несколько файлов-шаблонов excel. Им надо где-то располагаться. Логично, что в папке resources. И нужен простой и безотказный доступ к ним. Чтобы не было так, что у меня на моей машине все работало, а при эксплуатации полетели исключения, типа файл не найден и т. д.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777280
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Каюсь, я все перепутал :-)
Обычно File получают из URL вот так:
new File(url.toURI())
Но для ресурсов в classpath-e ClassLoader.getResource может вернуть URL с протоколом jar:file:/, который, естественно, в File преобразовать не получится.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777360
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoИ нужен простой и безотказный доступ к ним. Чтобы не было так, что у меня на моей машине все работало, а при эксплуатации полетели исключения, типа файл не найден и т. д.
Вот он:
16706123
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777477
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczGeronemoИ нужен простой и безотказный доступ к ним. Чтобы не было так, что у меня на моей машине все работало, а при эксплуатации полетели исключения, типа файл не найден и т. д.
Вот он:
16706123

Вы уж простите, если не понимаю Вас, не не то это.

Вы мне предлагаете получить некий InputStream по аргументу некоего String'а, а мне же надо
получить String, который можно было бы передать в функцию (таков ее формат) и она нашла бы по данному адресу (в папке resources) файл.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777511
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoВы уж простите, если не понимаю Вас, не не то это.

То. Вы просто странно как-то его интерпретируете.

GeronemoВы мне предлагаете получить некий InputStream по аргументу некоего String'а, а мне же надо
InputStream - ресурс.
String - идентификатор ресурса aka путь.

Geronemoполучить String, который можно было бы передать в функцию (таков ее формат)
идентификатор ресурса aka путь - смотри выше.

Geronemoи она нашла бы по данному адресу (в папке resources) файл.
А из файла она потом получает InputStream, так почему бы сразу ей не найти этот InputStream?

И что "кривое" API такое требует "файл"? Вы понимаете что ресурс запакованый в jar или war это уже не файл файловой системы?
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777623
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoПроект работает под Томкат, мне предложили такой вариант System.getProperty("catalina.home") и дальше плясать от этого.У котяры есть "описатели развёртывания" - xml-файлы, где можно использовать ${catalina.base} и прочие свойства .
Контейнер самостоятельно развернёт их в строковые значения. Для catalina.base - в абсолютный путь, даже если в строке запуска указан относительный.

P.S. Отвыкайте использовать catalina.home в своих проектах.
Как максимум - развернуть контекст с документацией самого Tomcat.

P.P.S. Предполагается, что Tomcat - старше 5.5.36
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777925
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovGeronemoПроект работает под Томкат, мне предложили такой вариант System.getProperty("catalina.home") и дальше плясать от этого.У котяры есть "описатели развёртывания" - xml-файлы, где можно использовать ${catalina.base} и прочие свойства .
Контейнер самостоятельно развернёт их в строковые значения. Для catalina.base - в абсолютный путь, даже если в строке запуска указан относительный.

P.S. Отвыкайте использовать catalina.home в своих проектах.
Как максимум - развернуть контекст с документацией самого Tomcat.

P.P.S. Предполагается, что Tomcat - старше 5.5.36

ok, придется похоже со старшими что-то придумывать.

появился еще один вопрос. Тут дело наверно и в самом деле в немного корявом API того модуля работы с xls, который я выбрал.
В общем, 2-я проблема - API позволяет сохранить файл на диск. Но пользователю такое нафиг не надо, искать фиг знает где какой-то файл. Ему нужен открытый файл на мониторе.
Я придумал решение - сохраняю файл со случайным именем в папку TEMP -destFileName = tmpPath + '\\' + "tmp" + System.currentTimeMillis() + ".xls"
но теперь задача - этот файл запустить. Неважно чем. Просто какой-нибудь программой, ассоциированной с данным типом файлов под данной ОС.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777931
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geronemoно теперь задача - этот файл запустить. Неважно чем. Просто какой-нибудь программой, ассоциированной с данным типом файлов под данной ОС.

Вот такое вот
SecurityManager securityManager = new SecurityManager();
securityManager.checkExec(destFileName);
выдает java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Users\IC5CE~1.BAK\AppData\Local\Temp\tmp1413387949488.xls" "execute")
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777966
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,
Ничего не понимаю. При скачке файлов Стандартный ослик спрашивает; Запустить или скачать.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38777974
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemook, придется похоже со старшими что-то придумыватьВ 5.5 механизм тоже работает, но там были странные странности, если использовать два свойства в одной строке.
Но, да, использовать 5.5 сейчас - странно.но теперь задача - этот файл запустить. Неважно чем. Просто какой-нибудь программой, ассоциированной с данным типом файлов под данной ОС.И что вам даёт "запуск" файла на сервере?
А если на клиенте, то почему это вас волнует, если вопрос "Сохранить или запустить" задаёт браузер?
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38793719
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На некоторое время вопрос был отложен, но опять всплыл.

Class.getResourceAsStream()
ClassLoader.getResourceAsStream()

Не работает.
Поясню проблему еще раз, более подробно. К клиент-серверном приложении надо сделать отчеты Excel. Для этого есть файл-шаблоне excel и он лежит в папке resources. Надо как-то получить его, загрузить в InputStream. Перепробовал кучу всяких возможных способов разных путей. Копировал файл-шаблон в пакет к классу, который занимается этим файлом. Ничего не работает.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38793752
6o6epYi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geronemo,

Я делал вот так. Сначала я определяю точку старта приложения

String startDIR = System.getProperty("user.dir"); - вернет вам строку

а потом делаю так:

private final File licenseFile = new File(startDIR, "Мий файл или папка");

Таким образом можно свободно двигаться на любом компе.

(Кто думает что я ошибаюсь, возможно он будет прав, я тоже новичок в Джаве)
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38795348
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень странно, что на таком большом форуме никто не знает правильный ответ. Мне пришлось немного извращнуться и положить эксель-шаблоны в папку (=пакет) с файлом-классом-обработчиком этих файлов. Таким макаром все заработало. Но не уверен, что начальству понравится (мне вот не очень нравится). У нас тут нет аврала, чтобы все заработало любым путем. Хочется, чтоб все было правильно и на своих местах.
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38795428
j_mik0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geronemo,

Я сам не пробовал делать, то, что хотите Вы, может и не понял полностью Вас. Но, если у Вас не получется, то можно попробовать сделать такое:
Создать проперти файл и укажите там путь (и еще всякого, чтобы не использовался только для этого :)), если мавен используете для сборки, тогда почитайте про мавен и проперти файлы, я не особо помню детали. И потом в приложение считывать путь к файлу с проперти файл.

или может это поможет:
InputStream is = getClass().getClassLoader().getResourceAsStream("META-INF/logger.properties");
...
Рейтинг: 0 / 0
Файлы из папки resources
    #38804504
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С вопросом домтупа к файлам я разобрался.

Теперь у меня такой вопрос. Как представить это юзеру. Сейчас у меня идет сохранение в папку Temp, но я так понимаю, что сохранение будет на сервер, а мне надо представить файл юзеру. И это из обычного класса, а не из сервлета.
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Файлы из папки resources
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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