Ответ 1
Если вы используете форму:
xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
Управление версиями игнорируется. Вам понадобится только это, если у вас возникла проблема совместимости с другой версией.
Недавно я начал замечать следующее предупреждение при запуске приложения JavaFX:
ПРЕДУПРЕЖДЕНИЕ: загрузка документа FXML с API JavaFX версии 8.0.65 с помощью среды JavaFX версии 8.0.60
Представленный FXML был создан Gluon Scene Builder 8.1.0, работающий с ним в комплекте Java, версия 1.8.0_65. Приложение запускается с моей ОС Java, версия 1.8.0_72.
Корень node для FXML имеет атрибут
xmlns="http://javafx.com/javafx/8.0.65"
но я понял 1.8.0_72 > 1.8.0_65, так почему я получаю это сообщение? Это что-то, о чем я должен беспокоиться? И есть ли способ спросить jre, что такое версия API JavaFX (которая, по-видимому, не совпадает с версией Java)?
Edit:
Выполнение кода, предложенного James_D, дает следующие результаты:
версия java: 1.8.0_72-internal
javafx.version: 8.0.60
Итак, похоже, что версия JavaFX в JDK неверна? Или, может быть, у меня старый jfxrt.jar? Я займусь этим.
Если вы используете форму:
xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
Управление версиями игнорируется. Вам понадобится только это, если у вас возникла проблема совместимости с другой версией.
Я думаю, что ваша версия JDK
- 1.8.0_60
, а версия JRE
- 1.8.0_65
.
Таким образом, вы должны использовать одну и ту же версию для них обоих.
Вы можете проверить свои текущие версии JDK
и JRE
в командной строке соответственно,
java -version
javac -version
или вы можете просмотреть свойства системы, используя следующий код Java,
System.out.println(System.getProperties());
У меня тоже есть эта проблема. Мне удалось просто изменить строки в файлах *.fxml:
javafx/8.0.171 → javafx/8.0.141
Раньше это было так, это строка в начале файла fxml:
<AnchorPane prefHeight="300.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.application.word.view.LoginController">
Затем я изменил его для:
<AnchorPane prefHeight="300.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.application.word.view.LoginController">
И это работает без проблем. Но будьте осторожны, что это может быть иначе, если вы используете разные поколения jdk.
У меня была такая же проблема. Не знаю, какие IDE вы, ребята, работаете, но я исправил его на Eclipse.
Внутри проектного проводника с правой стороны JRE System Library он показывал [J2SE-1.5]. Я щелкнул правой кнопкой мыши по Системной библиотеке JRE, перешел в " Свойства". Переключено с режима Environement выполнения на Workspace по умолчанию.
Если в скобках environement по умолчанию для рабочей области не отображается ваша новейшая версия jdk, например. (jdk1.8.0_192), вы можете изменить его, выбрав кнопку Установленные JREs и переключив JRE.
Если ваш jdk не указан, добавьте его с помощью кнопки ADD и выберите свой каталог JDK, например. C:\Program Files\Java\jdk1.8.0_192, как домашний каталог.
Если по какой-то причине вы не хотите менять настройки по умолчанию, просто выберите Alternate JRE вместо Workspace по умолчанию JRE. Затем выберите правый SDK из выпадающего меню.
PS. Да, вы можете изменить версию под опцией xmlns внутри вашего файла fxml, но вам придется обновлять запись каждый раз, когда вы изменяете свой fxml внутри Scene Builder.
У меня также была проблема с samme, буду ли я загружать свой файл fxml
ПРЕДУПРЕЖДЕНИЕ. Загрузка документа FXML с помощью API JavaFX версии 8.0.171 в среде выполнения JavaFX версии 8.0.111
Затем я пошел на сайт оракула и обновить JRE до 171 обновления Java 8.0
У меня была такая же проблема с Linux с Intellij IDEA. Я решил это, установив последний Oracle JDK и предоставив свой путь в меню настроек проекта "Project Sturucture":
Файл /Project Sturucture/Настройки платформы/SDK
У меня были те же проблемы, но я решил их, выполнив следующие действия
Если вы используете Intellij IDEA, перейдите в Файл → Структура проекта → SDK и нажмите на знак (-), чтобы удалить все остальные JDK, которые у вас были до этого, затем нажмите (+) подпишите, чтобы добавить новый JDK в проект от вас C:\Program Files (x86)\Java\jdk1.8.0_172.
То же самое было для меня. как вы упоминали, ваша версия компоновщика сцены - 8.1.0, а версия Javafx - 8.0.60. ну они разные :) два способа исправить это
например, моя версия javafx - 9.0.1, в то время как я использую конструктор сцен 10.0.1, но после редактирования в конструкторе сцен я меняю
xmlns="http://javafx.com/javafx/9.0.1"
отдо
xmlns="http://javafx.com/javafx/9.0.1"
ради самого себя :)