【发布时间】:2019-08-28 06:03:37
【问题描述】:
我的 Java 应用程序中有一个类,它读取位于 src/main/resources 中的资源文件夹。因此,在该类中,我将资源文件夹指定为:
public static final String RES_LOCATION = "./src/main/resources";
程序运行良好。但是当我制作一个 jar 并将其用作另一个项目中的依赖项时,上面的类会失败,因为它找不到资源文件夹。
有什么办法吗?
【问题讨论】:
我的 Java 应用程序中有一个类,它读取位于 src/main/resources 中的资源文件夹。因此,在该类中,我将资源文件夹指定为:
public static final String RES_LOCATION = "./src/main/resources";
程序运行良好。但是当我制作一个 jar 并将其用作另一个项目中的依赖项时,上面的类会失败,因为它找不到资源文件夹。
有什么办法吗?
【问题讨论】:
您需要从该目录中读取特定文件作为类路径资源,而不是 java.io.File
getClass().getResourceAsStream("relative/class/path/to/resource");
【讨论】:
resource 替换为1.txt,例如
你指定了错误的资源路径,你需要像resources一样加载资源 'public static final String RES_LOCATION = "resources"' as src/main 将不存在。
【讨论】:
./src/main/resources与你的项目结构有关,打包到.jar文件时不一样。这两种结构非常不同,它会影响您访问文件的方式。
访问资源中文件的最佳实践可以在此页面上找到:https://www.mkyong.com/java/java-read-a-file-from-resources-folder/
【讨论】: