Пытаюсь выполнить код:
URL url4 = Main.class.getResource("/test.dat"); //null
URL url = Main.class.getResource("/test.png"); //успешно
URL url2 = Main.class.getResource("/test.bmp"); //null
URL url3 = Main.class.getResource("/test.txt"); //null
Оно, что, только с PNG работает? Почему PNG?
AlexP
(Alex P.)
12.Май.2021 09:44:47
#2
Так а ресурсы как созданы?
Видимо там просто нет остальных файлов )
Файлы просто лежат в папке project_dir/src
. Если я правильно понял, это и есть ресурсы.
Если это не ресурсы, то мне надо загрузить файл из папки project_dir/src
(или из корня скомпилированного jar
а).
AlexP
(Alex P.)
12.Май.2021 09:56:44
#4
Если перенести файлы в папку resources
, то даже PNG перестаёт грузиться.
AlexP
(Alex P.)
12.Май.2021 10:25:20
#6
А проект как устроен, Maven (pom.xml), Gradle или что?
Как запускается?
Обычный hello world Java-проект
project_dir/project_name.iml
project_dir/src/com/Main.java
project_dir/src/test.png
project_dir/src/test.bmp
project_dir/src/test.dat
project_dir/src/test.txt
AlexP:
Как запускается?
Грубо говоря, F9 ENTER
Тут просто ничего больше не надо. Проект тестовый.
AlexP
(Alex P.)
12.Май.2021 10:38:30
#8
Ну это тогда от IDE зависит, что она делает при запуске такого проекта.
Если создать Maven проект, то должно работать как по ссылке.
Мне Maven не нужен.
Но ведь PNG грузится и любой директории. Что с ним не так?
во! А если папка resources
лежит в папке project_dir/src
, тогда всё грузится
URL url4 = Main.class.getResource("/resources/test.dat");
URL url = Main.class.getResource("/resources/test.png");
URL url2 = Main.class.getResource("/resources/test.bmp");
URL url3 = Main.class.getResource("/resources/test.txt");
Похоже, файлы должны лежать в любой директории, кроме корневой.
URL url4 = Main.class.getResource("/aaa/test.dat");
URL url = Main.class.getResource("/aaa/test.png");
Тогда работает. Но PNG грузится из корня тоже.
Почему?
LiAN
12.Май.2021 11:18:01
#10
Просто если в корневой, тогда не:
URL url4 = Main.class.getResource("/test.dat");
а наверное так:
URL url4 = Main.class.getResource("test.dat");
без слеш
LiAN:
без слеш
если без слеша, то файлы должны лежать в корне проекта:
project_dir/test.png
Это я где-то в гугле находил