Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用可执行Jar访问文件_Java_File_Jar_Io - Fatal编程技术网

Java 使用可执行Jar访问文件

Java 使用可执行Jar访问文件,java,file,jar,io,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/stateFarmThem

我收到的文件如下:

File testHeaderFile = new File(ClassLoader.getSystemResource("Images/redHeader.jpg").toURI());
当我在eclipse中编译时,这是有效的,但当我从可执行jar运行时,这是无效的

这段代码正在使用jar:

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

我到底做错了什么?

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

ClassLoader.getSystemResource: 只需从用于加载类的搜索路径(eclipse中的include project directory)中找到指定名称的资源,并通过系统类加载器定位该资源。因此,不包括可执行jar目录

getClass().getClassLoader().getResource: 此方法将首先在父类装入器中搜索资源;
如果父级为null,则会搜索内置到虚拟机的类加载器的路径。因此,请包含可执行jar目录。

能否提供项目的树目录?