Я сохраняю некоторые настройки в xml insinde моей папки ресурсов. Это все работает нормально, пока я не попытаюсь запустить свое программное обеспечение в моем исполняемом файле .jar, где оно не может его скомпилировать.
Я добавил ресурс в свой файл pom.xml и, если я проверю свой файл .jar, я смогусм. XML в папке классов. Когда я отлаживаю свой .jar-файл, в документе doc = dBuilder.parse (xml) освобождается исключение: он не может найти файл:
java.io.FileNotFoundException: C: \ Users \ dante \ IdeaProjects \BACbrowser \ file: \ C: \ Users \ dante \ IdeaProjects \ BACbrowser \ backend \ target \ backend-0.0.1-SNAPSHOT.jar! \ BOOT-INF \ classes! \ DefaultSettings (Синтаксис определения даты, даты, даты и даты)ist falsch)
public void readXMLSettings() {
try {
File xml = getXmlSettingsFile();
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xml);
setPort((doc.getElementsByTagName("port").item(0).getTextContent()));
setSiteName(doc.getElementsByTagName("siteName").item(0).getTextContent());
setSiteDescription(doc.getElementsByTagName("siteDescription").item(0).getTextContent());
setBacnetSeparator(doc.getElementsByTagName("bacnetSeparator").item(0).getTextContent());
} catch (Exception e) {
System.err.println("Can't read XML settings");
;
}
}
private File getXmlSettingsFile() {
ClassLoader classLoader = getClass().getClassLoader();
URL resource = classLoader.getResource("defaultSettings");
if (resource == null) {
throw new IllegalArgumentException("file is not found!");
} else {
return new File(resource.getFile());
}
}