我的项目设置如下:
现在我尝试在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)
我错了什么?感谢
答案 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文件所在的目标文件夹中。