无法在 JAR 中找到资源文件
Can't locate resource file in JAR
我的 Java 应用程序中有一个 class,它读取位于 src/main/resources 中的资源文件夹。因此,在 class 中,我将资源文件夹指定为:
public static final String RES_LOCATION = "./src/main/resources";
程序运行良好。但是当我制作一个 jar 并将其用作另一个项目的依赖项时,上述 class 失败,因为它找不到资源文件夹。
有什么解决办法吗?
您指定的资源路径有误,您需要像资源一样加载资源
'public static final String RES_LOCATION = "resources"' 因为 src/main 不会出现。
您需要从该目录中读取特定文件作为类路径资源而不是 java.io.File
getClass().getResourceAsStream("relative/class/path/to/resource");
./src/main/resources
与你的项目结构有关,与你打包代码到.jar
文件时不一样。这两种结构非常不同,它会影响您访问文件的方式。
访问资源中文件的最佳实践可在此页面上找到:https://www.mkyong.com/java/java-read-a-file-from-resources-folder/
我的 Java 应用程序中有一个 class,它读取位于 src/main/resources 中的资源文件夹。因此,在 class 中,我将资源文件夹指定为:
public static final String RES_LOCATION = "./src/main/resources";
程序运行良好。但是当我制作一个 jar 并将其用作另一个项目的依赖项时,上述 class 失败,因为它找不到资源文件夹。
有什么解决办法吗?
您指定的资源路径有误,您需要像资源一样加载资源 'public static final String RES_LOCATION = "resources"' 因为 src/main 不会出现。
您需要从该目录中读取特定文件作为类路径资源而不是 java.io.File
getClass().getResourceAsStream("relative/class/path/to/resource");
./src/main/resources
与你的项目结构有关,与你打包代码到.jar
文件时不一样。这两种结构非常不同,它会影响您访问文件的方式。
访问资源中文件的最佳实践可在此页面上找到:https://www.mkyong.com/java/java-read-a-file-from-resources-folder/