当尝试在Eclipse中加载文件时,文件加载正常,但是当我使用jar-splice将项目打包到.JAR文件时,似乎应用程序无法再找到其资源文件。
Here's the error thrown when the application is run
以下是加载文件的方法:
public static File loadFile(String path) throws FileNotFoundException
{
InputStream stream;
stream = FileUtil.class.getClassLoader().getResourceAsStream(path);
System.out.println("Stream = " + stream); //Debug purposes
File file = new File(FileUtil.class.getClassLoader().getResource(path).getFile());
if (!file.exists())
{
System.err.println("Path: " + FileUtil.class.getClassLoader().getResource(path).getPath()); //Also debug purposes
throw new FileNotFoundException();
}
return file;
}
使用这两个System.out.printlns,很明显应用程序无法根据该路径找到该文件,但是如果您查看该图片,那么该路径正是它所查找文件所在的位置。我很困惑,因为之前从未发生过这种情况,而它所说的无法找到文件的路径正是它的确切位置。任何人的想法?
答案 0 :(得分:0)
这是文件的方法
这是既不能也不能将资源加载为文件的方法。是不可能的。资源不是文件,不存在于文件系统中。你必须重新设计它才能返回一个URL或一个InputStream,因为你可以直接从Class或ClassLoader获取它们,你根本不需要这个方法。