Не видит путь к файлам

218
22 октября 2017, 19:45

Пишу на JAVA. Столкнулся с проблемой при экспорте файлов с eclipse. Прога в эклипс работает, но когда экспортирую путь к файлам не видит. Вот как пишу путь:

image = ImageIO.read(new File("src/Image/global.png"));

потом решил так, но не работает:

image = ImageIO.read(new File(getClass().getResource("src/Image/global.png").getPath()));

Как можно написать, чтобы читал файлы внутри директории, т.е в самом .jar?

Пытаюсь но так и не получается. У меня есть движок который картинки загружает, хочу сделать но не получается.

package Main;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
@SuppressWarnings("serial")
class ImagePanel extends JPanel{
    private BufferedImage image;
    public ImagePanel() {
       try {                
         image = ImageIO.read(new File("src/Image/global.png"));
       } catch (IOException ex) {
       }
    }
@Override
public void paintComponent(Graphics g) {
        g.drawImage(image, 0, 0, null); 
    }                   
}

При вызове движка добавляется картинка. Подскажите как изменить движок чтобы картинка добавлялась и после экпорта проекта?

Answer 1
  1. В Maven укажите папку с ресурсами и положите в нее вашу картинку
  2. Загрузите картинку.

    ImageIO.read(getClass().get("button1.png"));

Answer 2

Данный подход

image = ImageIO.read(new File("src/Image/global.png"));

означает что объект File будет получен по абсолютному пути на машине, на которой запущено приложение. Итак, если задача прочитать файл из ресурсов приложеных к приложению, то нужен подход с использованием getClass().getResource. Т.е. подход верный, только стоит уточнить, что путь к ресурсам должен быть установлен. Обычно это src/resource. Т.е. в таком случае getClass().getResource("Image/global.png") вернёт файл из jar, который находился во время сборки по пути src/resource/Image/global.png. Если нужен особенный путь, то это должно быть установлено дополнительно. Зависит от способа сборки приложения.

READ ALSO
Как реализовать приоритетную очередь?

Как реализовать приоритетную очередь?

Задача написать программу читающую из файла описания операций с очередью и выводящую в другой файл результат выполнения всех операций extract-minЕсли...

199
Перевод фокуса на элемент управления

Перевод фокуса на элемент управления

У меня есть форма с двумя кнопками, называющимися aButton и bButtonХочу, чтоб по нажатию мышкой на aButton выполнялась функция myFunctionMouseClickA, а по нажатию...

251
QRcode по ссылке

QRcode по ссылке

Задача следующая, нужно что бы перейдя по ссылке сразу получить изображение QR кода согласно get параметров в URLКак например тут

227