2014-01-16 65 views
0

访问文件在我的Maven项目:从类路径

src/main/java/App --> has Main 
src/main/resources/file.json 

public class App 
{ 
    public static void main(String[] args) 
    { 
     URL url = App.class.getClass().getResource("/file.json"); 
     File file = new File(url.getPath()); 

据我了解这些Maven的docs,我应该能够访问file.json,因为它(应该是)在类路径中,因为它位于src/main/resources

但是,我在url.getPath()调用上得到NullPointerException

+0

你没有领先的'/'试过吗? – Powerlord

+0

是的,但没有运气 –

+0

我总是使用类加载器的'getResource()'方法。另外,你如何执行'App.main'? – disrvptor

回答

1

你正在做的是获取根类加载器(java.lang.Class的类加载器)的App.class.getClass(),它与你的应用类加载器不一样。你想要做App.class.getResource()来代替。

+0

进行更改后,我运行'mvn exec:java -Dexec.mainClass = com.mycompany.app.App'来运行程序。最初我尝试执行吐出JAR,但是意识到通过上面的命令运行它更简单。由于CLASSPATH env var不足,我得到了一个'ClassDefNotFound'错误。 –

+0

另外我把file.json放在错误的主目录下 –