UrlClassLoader加载图像资源

时间:2019-05-13 14:15:28

标签: java image resources urlclassloader

我正在从Java项目(不是我写的)开始创建一个Eclipse工作区。 我遇到以下方法的问题:

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

       URL fileLocation = urlLoader.findResource(fileName);

       return fileLocation;

因为 findResource 找不到JPG资源(文件名=“ icons / INIT.JPG”)。

urlLoader.getUrl 上,我注意到该类仅用于jar文件。将文件夹 icon 添加到eclipse下的 Project-> Libraries 中,我设法让 findResources 进入 icon 文件夹:但是,该图像不是jar文件,因此不会考虑。

老实说,我不打算使用此过程来加载图像,但是我无法更改代码,我希望在Eclipse项目设置中找到一个解决方案。

预先感谢

1 个答案:

答案 0 :(得分:0)

基于原始评论中我的问题的答案,有一些事实:

  • 您无法更改代码,并且看起来正在检索AppClassLoader。
  • 即使将其转换为URLClassLoader,它仍然是AppClassLoader的实例,因此它将在JAVA_HOME \ lib \ ext中查找类路径的内容以及所有JAR / ZIP文件。

您说可以保证项目正常运行而无需将文件移动到任何地方,因此只有一个选择:将要使用ClassLoader检索的文件添加到类路径中。

  1. 右键单击项目,选择“构建路径”,然后选择“配置构建路径”。
  2. 单击“源”>“添加文件夹...”,然后将您要占用的资源添加到该文件夹​​中。

PD:如果将该文件夹添加为“库”选项卡中的“类文件夹”,则JPG图像将不会被AppClassLoader识别。