Вопрос по java, eclipse, resources, jar – Загрузите изображение из банки и вне ее в затмении

2

У меня есть такая структура в моем Java-проекте в Eclipse:

SRC / COM / MyProgram /.../ foo.javaРез / icon.png.project...

Я знаю, что вы можете загрузить изображение изнутри банки с

ImageIO.read(getClass().getResource("/res/icon.png"));

Проблема возникает, когда вы пытаетесь запустить приложение с eclipse напрямую, так как (я думаю) res папка нет внутри папки src, вы получаетеnull URL, И я хочу иметь отдельные папки для исходного кода и для ресурсов.

Кроме того, я обнаружил, что могу добавитьres путь к class-path в eclipse, чтобы я мог загрузить его:

URL url = getClass().getResource("/res/icon.png");
if (url == null)
    url = getClass().getResource("/icon.png");
ImageIO.read(url);

Но это добавить код, который нужен только при разработке, а я неМне нравится делать такие вещи (код должен быть максимально чистым и окончательным).

Можно ли что-то сделать, чтобы значок читался обоими методами с одинаковым кодом?

Ваш Ответ

2   ответа
4

Создатьresources папку в вашем проекте, пометьте ее как исходную папку в Eclipse, поместитеres папка подresourcesи убедитесь, что ваша сборка без затмения использует все, что находится подresources в банке. Затем загрузите значок, используя

getClass().getResource("/res/icon.png")

Ваша проблема вызвана тем, что вы не используете Eclipseres в банке, но затмение ставитсодержание изres в целевом каталоге.

0

> источник> добавить папку).

Все в этой папке будет доступно на пути к классам.

Похожие вопросы