2014-11-03 3 views
0

Мой проект установки выглядит следующим образом: enter image description hereНе можете найти JSon файл в папке проекта

Теперь я стараюсь ссылаться на файл 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

Что в 'MainFrameTest.java' на 28? – Deepak

+0

В '28' есть' getContextClassLoader(). GetResource ("/ report.json"). ToURI()); ' –

+0

сначала попробуйте распечатать местоположение, в котором вы находитесь, тогда можно будет получить файл. – Krishna

ответ

2

Попытайтесь вначале создать текущий текущий каталог, тогда вы сможете предоставить ресурсы.

сделайте это, это даст текущему адресу папки.

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

Поместите файл json в папку src и используйте его непосредственно в getContextClassLoader().getResource("report.json").

EDIT:

Я попробовал это в моем затмение:

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.

+0

Извините, но я получаю ту же ошибку! –

+0

После помещения файла JSON в файл src, попробуйте следующее: MainFrameTest.class.getClassLoader(). GetResource ("/ report.json"); –

+0

Также найдите дополнительную информацию по загрузке из папки src здесь: http://stackoverflow.com/questions/17865427/load-a-file-from-src-folder-into-a-reader – Vishnu