В большинстве случаев, IDE, не будет включать в себя не Java-файлы в результате Jar. Большинство IDE также будут включать каталог src
в пути к классам при запуске/отладке программы из них.
Как правило, никогда не включайте src
в любом пути, src
просто не будет существовать, как только программа будет построена.
Вместо этого вам необходимо использовать Class#getResource
или Class#getResourceAsStream
, в зависимости от ваших потребностей. Вы должны помнить, что вы никогда не должны рассматривать «внедренный» ресурс как File
, так как в большинстве случаев его не будет, это будет поток байтов в zip-файле.
Что-то вроде ...
URL xmlFile = getClass().getResource("/com/company/project/xml/tags.xml");
возвратит URL
ссылку на ресурс. Помните, если вам нужен InputStream
, вам нужно будет Class#getResourceAsStream
.
Если вы хотите, ресурс будет доступен для записи, то вам необходимо будет найти другое место, чтобы сохранить его, так как встроенные ресурсы только для чтения
Предполагая, что это внедренный ресурс, в большинстве случаев вы не сможете для доступа к нему как к файлу, потому что его не будет. Вместо этого вы должны использовать 'Class # getResource' или' Class # getResourceAsStream' и использовать возвращаемый 'URL' /' InputStream' для его чтения. Вы также не должны включать 'src' в любое значение пути – MadProgrammer
Хотя этот код может ответить на вопрос, было бы лучше включить какой-то контекст, объяснить, как он работает и когда его использовать. Ответы только на код не полезны в долгосрочной перспективе. – Bono