在项目文件夹中找不到json文件

时间:2014-11-03 12:07:27

标签: java eclipse

我的项目设置如下: enter image description here

现在我尝试在report.json

中引用MainFrameTest.java这样的文件
Template template = new JsonTemplate(Thread.currentThread().
            getContextClassLoader().getResource("/report.json").toURI()); 

我也尝试过:

Template template = new JsonTemplate(Thread.currentThread().
        getContextClassLoader().getResource("report.json").toURI());  

完整路径:

Template template = new JsonTemplate(Thread.currentThread().
        getContextClassLoader().getResource("C:/prohes/esc_print_test/report.json").toURI());  

但我总是得到这个错误:

java.lang.NullPointerException
at esc_print_test.MainFrameTest.<init>(MainFrameTest.java:28)
at esc_print_test.MainFrameTest.main(MainFrameTest.java:55)

我错了什么?感谢

2 个答案:

答案 0 :(得分:3)

尝试使用当前目录,然后您可以提供资源。

这样做会给你当前的文件夹地址。

String name = new File(".").getCanonicalPath();
System.out.println("Test "+ name);

然后你可以拥有文件,因为你已经定义了路径。

在该路径中获取新文件的行为是这样的。

File file = new File(name, "/"+ "yourfilename.extension");

希望这会有所帮助。

另外一个选择是

URI file = new File(name, "/"+ "one.text").toURI();
            System.out.println(file);

答案 1 :(得分:1)

将json文件放在src文件夹中,直接在getContextClassLoader().getResource("report.json")

中使用

修改

我在日食中试过这个:

public static void main(String arg[]){
        System.out.println("test="+Thread.currentThread().getContextClassLoader().getResource("report.json"));
    }

输出:

test=file:/D:/liferay/BundleTomcat/workspace/springBatch/target/classes/report.json

只是要确保检查report.json文件是否存在于.class文件所在的目标文件夹中。