Я столкнулся с этой странной проблемой при создании моего проекта через Maven.class.getClassLoader getResourceasStream возвращает null в jar
Вот мой код для чтения текстового файла, который я положил под resources
папку в проекте Maven. Во время работы с IDE все в порядке, но как только я создаю банку и запускаю из командной строки, она возвращает мне null
.
public static void main(String[] args) throws IOException {
URL jarUrl = FreeCalcTest.class.getProtectionDomain().getCodeSource().getLocation();
System.out.println("JarUrl : "+jarUrl);
String filePath = "UserDetails\\ReadFile.txt";
URL url = FreeCalcTest.class.getClassLoader().getResource(filePath);
System.out.println(url);
InputStream inputStream = FreeCalcTest.class.getClassLoader().getResourceAsStream(filePath);
UserDetailReader userDetailReader = new UserDetailReader(inputStream);
List<UserDetailValueSet> userDetails = userDetailReader.read();
Set<String> attrList = UserDetailAttributes.getAttributes();
Iterator<String> attrItr = attrList.iterator();
Iterator<UserDetailValueSet> itr = userDetails.iterator();
while (itr.hasNext()) {
UserDetailValueSet userDetailValueSet = (UserDetailValueSet) itr.next();
while (attrItr.hasNext()) {
String attr = (String) attrItr.next();
System.out.println(userDetailValueSet.getValueSet().get(attr));
}
}
}
Исключение StackTrace:
JarUrl : file:/C:/Users/bnath/Desktop/FreeCalc-0.0.1-SNAPSHOT.jar null
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source) at java.io.InputStreamReader.<init>(Unknown Source)
at com.sec.io.reader.UserDetailReader.read(UserDetailReader.java:24)
at com.sec.testFreeCalc.FreeCalcTest.main(FreeCalcTest.java:24)
Можете ли вы опубликовать трассировки стека, чтобы мы могли вникать в проблему –
Как вы строите свой файл jar? Попробуйте открыть файл jar, например. используя WinZip. Я предполагаю, что 'UserDetails \ ReadFile.txt' здесь * not *. – Andreas
Я проверил UserDetails \ ReadFile.txt в файле Jar. Ниже трассировки стека JarUrl: Файл:/C: /Users/bnath/Desktop/FreeCalc-0.0.1-SNAPSHOT.jar нулевого Исключения в потоке "главные" java.lang.NullPointerException в java.io.Reader , (Неизвестный источник) at java.io.InputStreamReader. (Unknown Source) на com.sec.io.reader.UserDetailReader.read (UserDetailReader.java:24) в com.sec.testFreeCalc.FreeCalcTest.main (FreeCalcTest.java:24) –