У меня есть проект maven, который я устанавливаю и запускаю с помощью Windows Prompt (console). И каждый раз, когда я запускаю его я получаю FileNotFoundException
:FileNotFoundException с помощью Notepad
public Properties getConfigProperties() throws Exception {
ClassLoader loader = getClass().getClassLoader();
File file = new File(loader.getResource("config.properties").getFile());
config.load(new FileReader(file));
return config;
}
Или NullPointerException
, если я использую classpath:config.properties
.
config.properties
файл находится внутри /src/main/resources/
папка.
Также, если я запускаю проект в среде IDE, он успешно завершается без каких-либо исключений.
В чем проблема при использовании команды консоли?
Ok, ' getResourceAsStream() 'работает. Но вы можете объяснить, почему? – nllsdfx
Это, безусловно, проблема классаLoader. Eclipse IDE имеет собственный классLoader, который при вызове 'getResource' или' getResourceAsStream' получает файл из 'workspace/test/target/classes/config.properties'. Но когда вы запускаете его из командной строки, загрузчик классов пытается получить его из ' /YOUR_JAR.jar! Config.properties', и этот путь недействителен для создания ** java.io.File ** и выдает« FileNotFoundException » ' –