maven模块主要功能使用错误的文件路径

时间:2015-08-16 01:27:51

标签: java maven intellij-idea

我真的花了3个小时来处理这个愚蠢的问题,而且我已经看了遍历stackoverflow,似乎没有人有这个特定的答案(我能找到)。

我会尽量简明扼要地解释我的问题。 首先,我使用IntelliJ作为我的IDE。

这是我的文件夹结构:

Utilities
|-----RandomFolder
|-----RandomFolder
`-----Java
      |
       `--MavenProjectFolder
            |----src/main/
            |           |----java/Main.java
            |            `---resources/test.json
             `---pom.xml   

请注意,此结构中的随机文件夹并不重要。

在这个结构中,Main.java是一个包含public static void main()函数的简单文件,我在其中试图读取test.json文件,如下所示: File jsonFile = new File("/test.json")

现在我知道在maven编译我的项目之后,它应该将所有内容放在我的根文件路径中的resources文件夹中(除非我遗漏了一些东西)我想到了我尝试在json文件中读取的语句应该没有问题,但我一直得到file not found exception

在尝试了一些其他的事情后,我试图最终将json文件放在Utilities文件夹的根目录中,因为运行System.out.println(System.getProperty("user.dir"));似乎表明该项目正在使用Utilities作为根目录目录,似乎有点工作。

现在我的问题是,我怎么能得到我的maven项目(它应该与包含它的父文件夹完全无关)从它自己的根目录中读取文件(结构呢)在编译项目时创建)?

我已经验证了test.json文件确实在项目编译时被复制到classes文件夹中,但File jsonFile = new File("test.json")仍然继续给我一个file not found exception

1 个答案:

答案 0 :(得分:0)

我找到了自己问题的答案:
File jsonFile = new File(Main.class.getResource("test.json").toURI())
似乎从maven编译的类路径中获取文件。