Java .Jar изображение не отображается - PullRequest
1 голос
/ 18 сентября 2011

Я сделал приложение на Java (используя Eclipse IDE), и я ссылаюсь в коде на изображения, хранящиеся в исходной папке с именем «source», и она отлично работает в IDE. Когда я извлек банку в работающую банку, ошибок нет, но картинка не отображается, или, если она появляется, показывает только то, что стоит за ней. Я открыл .jar в WinRar, и кажется, что все картинки добавлены в файлы классов. Как я могу это исправить?

Image i = Toolkit.getDefaultToolkit().getImage("sources/SystemTrayOne.png");

Ответы [ 2 ]

4 голосов
/ 18 сентября 2011

Вы пытаетесь получить файл, который не существует в банке. Вместо этого получите URL через Class#getResource(...)

например.,

URL imgUrl = getClass().getResource(....); // resource name here
Image i = Toolkit.getDefaultToolkit().getImage(imgUrl);

или лучше

URL imgUrl = getClass().getResource(....); // resource name here
Image i = ImageIO.read(imgUrl);
2 голосов
/ 20 февраля 2017

До вчерашнего дня я тоже сталкивался с той же проблемой.У меня есть решение для этого.Позвольте мне поделиться с вами.

  • В вашем Eclipse перейдите к названию вашего проекта.
  • Правильно укажите имя вашего проекта.
  • Новый -> Исходный файл / папка
  • Назовите этот исходный файл / папку как изображения
  • Теперь на вашем локальном компьютере перейдитев рабочую область Eclipse, где физически присутствует ваш проект.
  • Скопируйте ВСЕ ваши изображения в только что созданную папку «Изображения».
  • Теперь вернитесь к Затмению.
  • Щелкните правой кнопкой мыши по своему проекту -> Обновить.
  • Теперь, где бы вы ни использовали изображения в своих файлах .java, перейдите к этим строкам и добавьте префикс местоположения изображения с изображениями /
...