Предупреждение о версии API JavaFX 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? Я займусь этим.

Ответы

Ответ 1

Если вы используете форму:

xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"

Управление версиями игнорируется. Вам понадобится только это, если у вас возникла проблема совместимости с другой версией.

Ответ 2

Я думаю, что ваша версия JDK - 1.8.0_60, а версия JRE - 1.8.0_65.

Таким образом, вы должны использовать одну и ту же версию для них обоих.

Вы можете проверить свои текущие версии JDK и JRE в командной строке соответственно,

java -version
javac -version

или вы можете просмотреть свойства системы, используя следующий код Java,

System.out.println(System.getProperties());

Ответ 3

У меня тоже есть эта проблема. Мне удалось просто изменить строки в файлах *.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.

Ответ 4

У меня была такая же проблема. Не знаю, какие 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.

Ответ 5

У меня также была проблема с samme, буду ли я загружать свой файл fxml ПРЕДУПРЕЖДЕНИЕ. Загрузка документа FXML с помощью API JavaFX версии 8.0.171 в среде выполнения JavaFX версии 8.0.111 Затем я пошел на сайт оракула и обновить JRE до 171 обновления Java 8.0 enter image description here

Ответ 6

У меня была такая же проблема с Linux с Intellij IDEA. Я решил это, установив последний Oracle JDK и предоставив свой путь в меню настроек проекта "Project Sturucture":

Файл /Project Sturucture/Настройки платформы/SDK

Ответ 7

У меня были те же проблемы, но я решил их, выполнив следующие действия

Если вы используете Intellij IDEA, перейдите в Файл → Структура проекта → SDK и нажмите на знак (-), чтобы удалить все остальные JDK, которые у вас были до этого, затем нажмите (+) подпишите, чтобы добавить новый JDK в проект от вас C:\Program Files (x86)\Java\jdk1.8.0_172.

Ответ 8

То же самое было для меня. как вы упоминали, ваша версия компоновщика сцены - 8.1.0, а версия Javafx - 8.0.60. ну они разные :) два способа исправить это

  • деинсталлируйте текущий конструктор сцены и установите тот же с вашей версией Javafx
  • каждый раз, когда вы редактируете файл FXML с помощью компоновщика сцены, меняйте свойство xmlns в своем заголовке на версию Javafx

например, моя версия javafx - 9.0.1, в то время как я использую конструктор сцен 10.0.1, но после редактирования в конструкторе сцен я меняю

xmlns="http://javafx.com/javafx/9.0.1"
от

до

xmlns="http://javafx.com/javafx/9.0.1"

ради самого себя :)