编译 javaFx 程序时 FXMLLoader error/warning,尽管程序运行良好

FXMLLoader error/warning when compiling javaFx program, although program runs fine

当我编译我的代码时,我收到以下消息:

javafx.fxml.FXMLLoader$ValueElement processValue
WARNING: Loading FXML document with JavaFX API of version 8.0.131 by JavaFX runtime of version 8.0.72

使用 IntelliJ 2017.1.3

这并不特别重要,因为该程序似乎仍然 运行 正常,尽管很高兴找出它抛出这些 error/warning

的原因

像 scenebuilder 这样创建 fxml 的工具使用 url 作为包含该工具使用的版本号的命名空间,例如

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

当使用早期版本的 JavaFX FXMLLoader 加载 fxml 时发出警告,因为它不能保证新版本的所有功能都已经可用。

这并不意味着您确实使用了不可用的功能,尽管这就是加载 fxml 可能会成功的原因。

我猜,您使用 Scene Builder 工具创建了一个 FXML 文件。 当场景构建器创建一个 FXML 文件时,根目录有一个属性:xmlns url 其版本为 JDK.

示例 :

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

出现此警告是因为您使用以下方式加载 FXML 文件:

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

但是在你的项目中你有一个 JDK 8.0.72,这意味着你应该将你的 JDK 更新到 8.0.131 或更高版本.