Вы можете использовать public URL getResource(String name)
метод ClassLoader class, который:
Находит ресурс с заданным именем.Ресурс - это некоторые данные (изображения, аудио, текст и т. Д.), К которым код класса может получить доступ независимо от местоположения кода.Имя ресурса - это разделенное '/' имя пути, которое идентифицирует ресурс.Этот метод сначала ищет ресурс в родительском классе;если родитель имеет нулевое значение, выполняется поиск пути загрузчика классов, встроенного в виртуальную машину.В случае ошибки этот метод вызовет findResource (String) для поиска ресурса.
Таким образом, ваш код будет выглядеть следующим образом:
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("xmls/b.xml").getFile());
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(file);
document.getDocumentElement().normalize();
//System.out.println("####Root element : " + document.getDocumentElement().getNodeName());
Редактировать
Я создал ту же структуру, что и вы, с файлом примера xml, содержащим
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
И в распечатке я получил: #### Корневой элемент: note ,Я могу поделиться с вами кодом, если хотите.В любом случае, убедитесь, что у вас есть разрешение на ваше пространство и что ваш путь будет отформатирован!(Я использую Linux-машину, без окон, без проблем: D !)