IntelliJ:非绝对(相对)资源路径

时间:2014-09-22 16:12:29

标签: java intellij-idea

我有这样的代码:

public class EntryPoint {
    public static void main(String args[]) {
        File file = new File("resources/file.xml");
        try {
            Document document = new SAXReader().read(file);
        } catch (DocumentException e) {
            e.printStackTrace();
        }
    }

}

我的测试模块的结构如下:

structure of my test module

问题是我收到错误:

  

嵌套异常:java.io.FileNotFoundException:resources \ file.xml

当然我可以改变路径,例如:

File file = new File("C:/ws/_SimpleTests/resources/file.xml");

它可以正常工作,但我不想使用绝对路径。

我应该在IntelliJ中设置什么才能使用相对路径?

2 个答案:

答案 0 :(得分:3)

首先右键单击 resources文件夹 - >将目录标记为 - >资源root 然后 尝试以这种方式阅读文件

InputStream is = TestResources.class.getClassLoader().getResourceAsStream("file.xml");

File file = new File(YourClassName.class.getClassLoader().getResource("file.xml")
                                                         .getPath());

答案 1 :(得分:2)

您可以使用Paths像这样检索file.xml

File file = Paths.get(".", "resources", "file.xml").normalize().toFile();