加载资源文件一般有如下两种方式
a、new File(Class.getResource(fileName).getPath());
b、Class.getResourceAsStream(fileName);
那么这两种方式有什么区别呢?最近做了一个小程序,就遇到了这样一个问题。在eclipse中运行时,这两种方法都能找到对应的资源文件,但是有这么一种情况:当我把程序打包成jar文件,这个时候运行程序通过第一种方式是不能够加载到资源文件的。为什么会这样呢?
因为在eclipse中运行程序时我们通过Class.getResource(fileName).getPath()获取的资源路径为 E:/workspace/project/resourceFile,而通过jar运行程序时,拿到的路径为:E:/workspace/project.jar/resourceFile ,这个路径是有问题的,所以会找不到资源文件。