使用可执行文件访问文件

时间:2013-07-18 02:56:01

标签: java file jar io

我得到的文件是这样的:

File testHeaderFile = new File(ClassLoader.getSystemResource("Images/redHeader.jpg").toURI());

当我在eclipse中编译时,这种方法有效,但是当我从可执行jar中运行时,这种方式无效。

此代码正在使用jar:

ImageIcon pc = new ImageIcon(getClass().getClassLoader().getResource("Images/stateFarmTheme1Icon.png"));

我到底做错了什么?

1 个答案:

答案 0 :(得分:1)

每个类加载器都有自己的搜索路径。

<强> ClassLoader.getSystemResource: 只需从搜索路径(包括eclipse中的项目目录)中找到指定名称的资源,用于加载类并通过系统类loader.so定位资源,不包括可执行jar目录。

<强>的getClass()getClassLoader()的getResource: 此方法将首先在父类加载器中搜索资源; 如果父项为null,则搜索内置到虚拟机的类加载器的路径。包括可执行jar目录。