我得到的文件是这样的:
File testHeaderFile = new File(ClassLoader.getSystemResource("Images/redHeader.jpg").toURI());
当我在eclipse中编译时,此方法有效,但是当我从可执行jar运行时,则无效。
这段代码与罐子一起工作:
ImageIcon pc = new ImageIcon(getClass().getClassLoader().getResource("Images/stateFarmTheme1Icon.png"));
我到底在做什么错?
最佳答案
每个类加载器都有自己的搜索路径。
ClassLoader.getSystemResource:
只需从用于加载类的搜索路径(在eclipse中包含项目目录)中找到具有指定名称的资源,然后通过系统类loader来查找该资源即可。因此,不包括可执行jar目录。
getClass()。getClassLoader()。getResource:
此方法将首先在父类加载器中搜索资源;
如果父级为null,则搜索虚拟机内置的类加载器的路径。因此,包括可执行jar目录。