it-swarm.com.ru

Предупреждение о версии JavaFX FXML API

Недавно я начал замечать следующее предупреждение при запуске приложения 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. 

Корневой узел FXML имеет атрибут

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

но я понял, что 1.8.0_72> 1.8.0_65, так почему я получаю это сообщение? Это то, что меня должно волновать? И есть ли способ спросить jre, что такое версия API JavaFX (которая, по-видимому, не совпадает с версией Java)?

Правка:
Выполнение кода, предложенного James_D, дает следующие результаты: 

Версия Java: 1.8.0_72-внутренняя
javafx.version: 8.0.60

Итак, похоже, что версия JavaFX в JDK неверна? Или, может быть, у меня есть старый jfxrt.jar? Я посмотрю на это. 

25
Itai

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

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

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

20
sproketboy

Я думаю, что ваша версия JDK1.8.0_60, а версия JRE1.8.0_65.

Поэтому вы должны загрузить одну и ту же версию JDK и JRE.

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

Java -version

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

System.out.println(System.getProperties());
5
Shekhar Rai

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

2
Saidar Ramazanov

У меня была та же проблема . Не знаю, что IDE вы, ребята, используете, но я исправил это в Eclipse.

Внутри Project Explorer на правой стороне Системная библиотека JRE он показывал [J2SE-1.5] . Я щелкнул правой кнопкой мыши Системная библиотека JRE , зашел в Свойства . Переключен с Окружение выполнения на Окружение рабочего пространства по умолчанию .

Если внутри рабочая среда по умолчанию скобки, это не показывает вашу последнюю версию jdk, например. (jdk1.8.0_192) вы можете изменить его, выбрав Установленные JREs кнопку и выбрав переключение JRE.

Если ваш jdk отсутствует в списке, добавьте его с помощью кнопкиADDи выберите каталог JDK, например. C:\Program Files\Java\jdk1.8.0_192, в качестве домашнего каталога.

В случае, если по какой-то причине вы не хотите изменять среду по умолчанию, просто выберите Альтернативный JRE вместо JRE рабочей области по умолчанию . Затем выберите нужный SDK из выпадающего меню.

PS. Да, вы можете изменить версию в опции xmlns внутри вашего файла fxml, но вам придется обновлять запись каждый раз, когда вы изменяете свой fxml в Scene Builder.

1
Adam Sokołowski

У меня были те же проблемы, но я решил их, пройдя через эти шаги

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

0
Nosakhare George Ohonba

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

Файл/Структура проекта/Настройки платформы/SDK

0
Sergey