Загрузите изображение из банки и вне ее в затмении

У меня есть такая структура в моем 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)

Ваш ответ на вопрос