Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как правильно подключать ресурсы


Автор: x8m6 22.7.2010, 22:54
Есть проект с такой структурой:
-bin
-src
-resources
  -files
     -test.txt

В classpath добавил папку resources. В коде обращаюсь к фаилу test.txt по отн. пути "files/test.txt". Но при выполнении программы фаил не находится. Что не так? Как вообще правильно подключать ресурсы и обращатся к ним из кода программы?

Автор: GZep 23.7.2010, 01:01
Цитата(x8m6 @  22.7.2010,  22:54 Найти цитируемый пост)
В classpath добавил папку resources

это же classpath smile не txtpath

Автор: ki6opr 23.7.2010, 05:38
MyClass.class.getResourceAsStream("путь к ресурсу") 
или
MyClass.class.getResource("путь к ресурсу") 

Автор: Skipy 23.7.2010, 10:20
Причем если напишете files/test.txt - будет считаться, что это путь относительно пакета текущего класса. А если /files/test.txt - это абсолютный путь.

Автор: x8m6 23.7.2010, 12:30
Но, а как же все таки загружать ресурсы не через class.getResourse() а напрямую,
Код

String filePath = "/files/test.txt"; // что тут написать?
File file = new File(filePath);



Автор: jk1 23.7.2010, 13:34
Цитата

что тут написать?

Абсолютный путь, либо относительный от текущей директории. Если хотите ссылаться на ресурсы относительно расположения ваших классов - см. посты выше.

Автор: x8m6 23.7.2010, 13:45
Цитата

Абсолютный путь, либо относительный от текущей директории. Если хотите ссылаться на ресурсы относительно расположения ваших классов - см. посты выше. 

Я хочу ссылаться отн. папки resources. 

Автор: Kircul 23.7.2010, 14:19
Цитата(x8m6 @  23.7.2010,  12:45 Найти цитируемый пост)
Я хочу ссылаться отн. папки resources.  

В итоге проект будет рано или поздно собран в jar (я так понимаю это не веб-приложение), стоит задуматься о том как данные ресурсы будут располагаться в собранном проекте.

Автор: Skipy 23.7.2010, 14:29
Цитата(x8m6 @ 23.7.2010,  13:45)
Я хочу ссылаться отн. папки resources.

Добавьте ее в classpath и по абсолютным путям - /files/test.txt. Тогда при сборке jar не придется менять код, если jar собран правильно (всё, что лежит в resources, пойдет в корень).

Автор: x8m6 23.7.2010, 15:16
Цитата

Добавьте ее в classpath и по абсолютным путям - /files/test.txt. 

Ну я так и сделал. Фаил все равно не видит!

Автор: jk1 23.7.2010, 16:20
а если так?
Код

File file = new File("./resources/files/test.txt");

Автор: x8m6 28.7.2010, 12:17
Цитата

а если так?

находит. Так же находит по такому отн. пути:
Код

File file = new File("resources/files/test.txt");


Но мне нужно сделать отн. папки resources, т.е. "files/test.txt" 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)