Maven exec:java : 如何打开和读取资源目录中的文件?

2022-09-02 11:35:56

这是我的项目结构。

proj
  ---src
    ----main
        ----java
            ----Main.java
        ----resources
             ----res.txt

我正在使用m2eclipse插件和Eclipse。在Main.java中,我有

File f = new File("res.txt");  System.out.println(f.getAbsolutePath());

当我运行mvn exec:java时,打印出来的路径是“...\proj\res.txt”。如何让它在“...\proj\target\classes”目录中查找资源文件?

编辑:

感谢您对我原始问题的回答。我有一个后续问题:

所以基本上我想做的是让Main类读取“res.txt”,然后生成一个新的“newres.txt”到资源目录,这样我就可以把这个新的“newres.txt”打包到jar文件中。目前,我将这个exec:java挂载到准备包阶段。我应该如何在资源目录中创建这个“newres.txt”,而没有硬编码的绝对路径或取决于Maven的目录结构?


答案 1

我想我会回答我自己的问题,对我来说效果最好,特别是当项目为另一个Web项目生成jar依赖项时。Thread.currentThread().getContextClassLoader().getResourceAsStream()


答案 2

图我会添加到答案中。

您还可以使用:

InputStream file = ClassLoader.getSystemResourceAsStream("res.txt");

推荐