pat*_*fox 3 java relative-path maven
我有一个具有典型项目结构的 Maven 项目。在项目的基础上,我有一个名为res 的目录,其中包含一些资源(> 500 MB)。我正在尝试使用
this.class().getClassLoader().getResourceAsStream("res/xxx")
此代码片段从该文件夹中读取,但它返回空资源流。我在下面有一些解决方法,但由于下面解释的原因,这些方法都不可接受。
有什么方法可以从项目基目录读取res文件夹吗?pom.xml文件中是否有一些设置可以帮助我解决这个问题?
使用this.class().getClassLoader().getResourceAsStream("/res/xxx")后,您将从类路径的根目录读取内容,无论 Windows 或 Linux 中的实际文件/文件夹位置如何。这实际上是读取文件的最安全的方法之一,特别是当您不知道应用程序最终将如何部署时。
这意味着您的类路径必须包含 res 的父级,并且在部署应用程序时必须复制 res/
否则,如果您想使用相对路径,请尝试此片段(取自此 SO答案):
String filePath = new File("").getAbsolutePath();
filePath.concat("path to the property file");
Run Code Online (Sandbox Code Playgroud)