ale*_*x_z 5 java file relative-path
我一直在阅读这里和 Quora 上提出的相同问题,但是,我仍然不明白为什么我无法访问位于“src/main/resources”文件夹中的文件。当我手动指定相对路径“src/main/resources/config/serverConf.xml”时,一切正常
项目结构:
src/main/java/"project related folders"
src/main/resources/config/serverConf.xml
Run Code Online (Sandbox Code Playgroud)
和主类:
public class Main{
public Main(){
File file = new File(this.getClass().getResource("config/serverConf.xml").getPath());
if(file.exists())
System.out.println("Yes");
else
System.out.println("No");
}
public static void main(String[] args){
Main main = new Main();
}
}
Run Code Online (Sandbox Code Playgroud)
用户 Nikolas 和 Antoniossss 已经回答了这个问题。只是给出一个简短的解释,以防有帮助。从你的目录结构来看,我猜你正在使用 Maven。当您使用 Maven 构建项目时,Maven 会将所有文件夹和文件复制到target/classes类路径的根文件夹中。因此,在您的情况下,以下内容应该有效:
File file = new File(this.getClass().getResource("/config/serverConf.xml").getPath());
Run Code Online (Sandbox Code Playgroud)
但是,如果您想像原始代码中那样使用相对路径,则应该在类所在的config目录中创建文件夹Main.java并将其放在serverConf.xml那里。那么以下内容也应该有效:
File file = new File(this.getClass().getResource("config/serverConf.xml").getPath());
Run Code Online (Sandbox Code Playgroud)
也就是说,更好的方法是将配置文件放在src/main/resources文件夹下。
| 归档时间: |
|
| 查看次数: |
7698 次 |
| 最近记录: |