Я не уверен, что это связано с Spring; имя ресурса, которое вы используете для F XML, не является допустимым именем ресурса (и трассировка стека указывает, что проблема не в том, что вы не можете найти файл F XML).
В частности, имена ресурсов не могут содержать .
, поэтому ..
и com.ui.views
недопустимы.
Таким образом, здесь есть две проблемы: во-первых, имя ресурса не работает с указанными в нем «родительскими каталогами», а во-вторых, вы создали папку (не пакет ) в resources
с недопустимыми .
символами в нем. Также обратите внимание, что resources
является папкой source и недоступна во время выполнения.
Итак, сначала создайте пакет в ресурсах, называемых com.ui.views
, и поместите FMXL там. Я не использую IntelliJ, поэтому я не уверен, есть ли возможность сделать это, но если нет, вы можете создать папку com
, подпапку с именем ui
и подпапку с именем views
и поместите файл F XML в views
.
Тогда правильное имя ресурса для F XML, если вы используете для своей сборки значения по умолчанию Maven, будет
Parent view = FXMLLoader.load(Login.class.getResource("/com/ui/views/Login.fxml"));
Если вы немного реструктурируете так, чтобы файл F XML и класс Login
были в одном пакете (то есть вы создаете пакет com.alarmsystem.ui.views
в resources
), тогда вы можете просто сделать
Parent view = FXMLLoader.load(Login.class.getResource("Login.fxml"));
Если вам потребуется дальнейшее устранение неполадок, вы можете увидеть, где были развернуты ресурсы (например, где они находятся в runtime ), заглянув в папку target/classes
.