有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

编译javaFx程序时出现java FXMLLoader错误/警告,尽管程序运行正常

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

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

这并不特别重要,因为程序似乎仍然运行良好,不过最好找出它抛出这些错误/警告的原因


共 (2) 个答案

  1. # 1 楼答案

    创建FXML的工具(如scenebuilder)使用包含该工具使用的版本号的命名空间的url,例如

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

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

    这并不意味着您实际上使用了不可用的功能,尽管这也是加载fxml可能成功的原因

  2. # 2 楼答案

    我猜,您使用场景生成器工具创建了一个FXML文件。 当场景生成器创建FXML文件时,根目录有一个attribute:xmlnsurl,该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或更高版本