Как получить доступ к файлу изображения в папке проекта Eclipse - PullRequest
3 голосов
/ 20 марта 2012

У меня есть один файл изображения в папке в моем проекте Eclipse, в которой хранится файл изображения (logo.jpg). Однако я не знаю, как получить к нему доступ в моей основной программе.

Я пробовал следующее

private static URL logoPath

public class MainApplication
{
     public void createGui()
     {
          logoPath.getClass().getResource("/Resources/images/logo.jpg");
          ////
     }
     /////
}

Проблема в том, что я продолжаю получать исключение нулевого указателя, поэтому очевидно, что путь сделан неверно, иначе logoPath.getClass () отключает его.

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 15 января 2013

U можете использовать этот способ У меня следующая структура пакета

  • src / test (пакетный тест содержит файлы Java)

  • src / images (в папке images содержатся изображения)

Я собираюсь получить изображение от src / images / login.png в src / test / *. Java

JLabel label = new JLabel(new ImageIcon(getClass().getResource("/images/login.png")));

1 голос
/ 20 марта 2012

Вам нужно поместить свои ресурсы в исходный каталог Java, чтобы они были видны. У вас есть два варианта:

  1. Переместите папку «resources» в существующую папку «src».

  2. Создать новую исходную папку только для ресурсов. Это можно сделать на странице «Путь сборки Java» свойств проекта.

Несколько вещей, на которые стоит обратить внимание ...

  1. Обратите внимание на вашу заглавную букву. Поиск ресурсов Java чувствителен к регистру.

  2. Путь, который вы будете использовать, будет относиться к исходной папке (не к корню проекта). Например, если вы сделаете вашу папку ресурсов исходной папкой, ваш путь должен быть «images / ...». Если вы хотите сохранить папку ресурсов в пути поиска, вам нужно создать дополнительный уровень папки в вашем проекте, который будет служить корневым источником для ресурсов.

  3. Я не уверен, является ли это реальной проблемой, но пути к ресурсам не должны начинаться с косой черты. Они не совсем пути в традиционном смысле. Думайте о них как об именах классов, указанных в пакете, но с '/' вместо '.' в качестве разделителя.

0 голосов
/ 20 марта 2012

Я делаю то же самое

 String filename = "logo.jpg";

 Main.getClass().getClassLoader().getResource(filename);

И структура файла выглядит следующим образом

/ src / main / java / com / hauke / Main.java

/ resource / logo.jpg

Моя проблема была до того, как я назвал direcotry "resources", и он должен быть "resource"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...