Я пытаюсь запустить приложение JavaFX 2.2 в JavaFX 8 (8u5) и постоянно сталкивался с этой ошибкой:
Caused by: javafx.fxml.LoadException: Error resolving onMouseClicked=
'#chooseClient', either the event handler is not in the Namespace or there
is an error in the script. /C:/Users/Viktor/app/bin/main/fxml/layout.fxml:301
Мой код кажется совершенно прекрасным и, самое главное, все отлично работает в JavaFx 2.2! Метод chooseclient, к которому он относится, объявляется как таковой:
@FXML protected static void chooseClient() { /* code here */ }
Как намекнул на этот вопрос, я сделал операцию поиска и замены, чтобы изменить все экземпляры слов "private" и "protected" на "public". Без изменений, по-прежнему была та же ошибка.
Я экспортирую свое приложение как.jar файл из eclipse и запускаю его через командную строку (Windows) с помощью
"C:\Program Files\Java\jdk1.8.0_05\jre\bin\java.exe" -jar cClient.jar
Удар "run" в eclipse приводит к одинаковой ошибке.
Выполнение точно такой же экспортированной банки, но с помощью JavaFx 2.2, не вызывает никаких проблем. Может ли это быть ошибкой? Очень смутно, что может вызвать проблему. Буду признателен за любую оказанную помощь.
Я считаю, что поддержка статического доступа через @FXML
исчезла в JavaFX 8. Удалите статический модификатор.