【问题标题】:FXMLLoader error/warning when compiling javaFx program, although program runs fine编译 javaFx 程序时出现 FXMLLoader 错误/警告,尽管程序运行良好
【发布时间】:2018-03-27 18:01:09
【问题描述】:

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

javafx.fxml.FXMLLoader$ValueElement processValue
警告:版本 8.0.72 的 JavaFX 运行时使用版本 8.0.131 的 JavaFX API 加载 FXML 文档

使用 IntelliJ 2017.1.3

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

【问题讨论】:

  • 场景构建器的版本与 jdk 不同
  • 为什么不把SceneBuilder和你的JDK更新到最新的8版本?
  • 第一行也是这个原因吗?我会更新它们,我最近一直很懒
  • 你也必须分享你的代码段

标签: java xml javafx fxml


【解决方案1】:

我猜,您使用 Scene Builder 工具创建了一个 FXML 文件。 场景构建器创建 FXML 文件时,root 有一个属性: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 或更高版本。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-20
      • 2012-06-24
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      • 2016-06-03
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      相关资源
      最近更新 更多