UrlClassLoader для загрузки ресурса изображения - PullRequest
0 голосов
/ 13 мая 2019

Я создаю рабочее пространство Eclipse, начиная с Java-проекта (не написанного мной).У меня проблемы со следующим методом:

    public static URL getURL(String fileName) {
       URLClassLoader urlLoader = (URLClassLoader) getInstance().getClass()
            .getClassLoader();

       URL fileLocation = urlLoader.findResource(fileName);

       return fileLocation;

, поскольку findResource не находит ресурс JPG (filename = "icons / INIT.JPG").

Глядя на urlLoader.getUrl , я заметил, что класс предназначен только для jar-файлов.Добавив папку icon в Project-> Libraries при затмении Мне удалось позволить findResources заглянуть в папку icon : тем не менее,изображение не является файлом jar и поэтому не рассматривается.

Честно говоря, я не вижу смысла использовать этот процесс для загрузки изображения, но я не могу изменить код, и я надеялся, чторешение в рамках настройки проекта Eclipse.

Заранее спасибо

1 Ответ

0 голосов
/ 13 мая 2019

Исходя из ответов на мои вопросы в оригинальном комментарии, есть несколько фактов:

  • Вы не можете изменить код, и похоже, что он извлекает AppClassLoader.
  • Даже если вы приведете его к URLClassLoader, он все равно будет экземпляром AppClassLoader, поэтому он будет искать содержимое пути к классам и всех файлов JAR / ZIP в JAVA_HOME \ lib \ ext.

Вы сказали, что проект гарантированно будет работать без перемещения файла куда-либо, поэтому есть только один вариант: добавить файл, который вы хотите получить с помощью ClassLoader, в путь к классам.

  1. Щелкните правой кнопкой мыши по проекту, выберите Build Path и выберите Configure Build Path.
  2. Нажмите «Источник»> «Добавить папку» и добавьте папку, в которой находятся ресурсы, которые вы хотите использовать.

PD: если вы добавите папку как Папку классов на вкладке Библиотеки, изображение JPG не будет распознано AppClassLoader.

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