有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于加载图像资源的java UrlClassLoader

我正在从一个java项目(不是我写的)开始创建一个eclipse工作区。 我面临以下方法的问题:

    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”)

查看urloader。getUrl,我注意到这个类只针对jar文件。将文件夹图标添加到项目->;库在eclipse下,我设法让findResources查看图标文件夹:然而,图像不是jar文件,因此不考虑它

老实说,我不明白使用这个过程来加载图像的意义,但是我不能更改代码,我希望在Eclipse项目设置中找到一个解决方案

提前谢谢


共 (1) 个答案

  1. # 1 楼答案

    根据我在原始评论中对问题的回答,有一些事实:

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

    您说过,该项目保证在不将文件移动到任何位置的情况下工作,因此只有一个选项:将您希望使用类加载器检索的文件添加到类路径

    1. 右键单击项目,选择Build Path,然后选择Configure Build Path
    2. 点击Source>;添加文件夹。。。并添加要获取的资源所在的文件夹

    PD:如果在Libraries选项卡中将文件夹添加为Class文件夹,AppClassLoader将无法识别JPG图像