JavaFX FXML API版本警告

问题描述 投票:28回答:6

我最近在启动JavaFX应用程序时注意到以下警告:

警告:JavaFX运行时版本8.0.60使用版本8.0.65的JavaFX API加载FXML文档

有问题的FXML是由Gluon Scene Builder 8.1.0创建的,运行它的捆绑Java,版本1.8.0_65。该应用程序是使用我的OS Java 1.8.0_72版启动的。

FXML的根节点确实具有该属性

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

但我认为1.8.0_72> 1.8.0_65,为什么我收到这条消息呢?这是我应该担心的事情吗?有没有办法问jre什么是JavaFX API版本(显然,它与Java版本不同)?

编辑: 运行James_D建议的代码会得到以下结果:

java版本:1.8.0_72-internal javafx.version:8.0.60

那么,看起来像JDK中的JavaFX版本是错误的?或者我可能有一个旧的jfxrt.jar?我会调查一下。

java javafx fxml
6个回答
37
投票

如果您使用表格:

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

版本控制被忽略。如果您与其他版本存在兼容性问题,则只需要它。


6
投票

我认为你的JDK版本是1.8.0_60JRE版本是1.8.0_65

所以你应该对它们使用相同的版本。

您可以分别在命令提示符下查看当前的qazxsw poi和qazxsw poi版本,

JDK

或者你可以使用以下java代码浏览系统属性,

JRE

3
投票

我也有这个问题。我管理它只是为了更改* .fxml文件中的行:

javafx / 8.0.171 - > javafx / 8.0.141

以前它是这样的,它是fxml文件开头的一行:

java -version
javac -version

然后我改为:

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

它没有任何问题。但要小心,如果你使用不同的jdk代,它可能会有所不同。


1
投票

我有同样的问题。不知道你们正在运行什么IDE,但我在Eclipse上修复了它。

在JRE系统库右侧的项目浏览器内部显示了[J2SE-1.5]。我右键单击了JRE System Library,进入了Properties。从Execution Environement切换到Workspace默认环境。

如果在工作区内的默认环境括号中,它不会显示您最新的jdk版本,例如。 (jdk1.8.0_192)您可以通过选择Installed JREs按钮并切换选中的JRE来更改它。

如果未列出您的jdk,请使用ADD按钮添加它并选择您的JDK目录,例如。 C:\ Program Files \ Java \ jdk1.8.0_192,作为主目录。

如果出于某种原因,您不想更改默认环境,只需选择Alternate JRE而不是Workspace默认JRE。然后从下拉菜单中选择正确的SDK。

PS。是的,您可以在fxml文件中的xmlns选项下更改版本,但每次在Scene Builder中修改fxml时都必须更新条目。


0
投票

我使用Intellij IDEA在Linux上遇到了同样的问题。我已经通过安装最新的Oracle JDK解决了这个问题,并在IDEA的“Project Sturucture”设置菜单中提供了它的路径:

文件/项目结构/平台设置/ SDK


0
投票

我有同样的问题,但我通过这些步骤解决了它

如果您正在使用Intellij IDEA转到文件 - >项目结构 - > SDK并单击( - )符号以删除之前的所有其他JDK,然后单击(+)符号将新JDK添加到项目中C :\ Program Files(x86)\ Java \ jdk1.8.0_172。


0
投票

我也有samme问题我将加载我的fxml文件警告:使用版本8.0.111的JavaFX运行时版本8.0.111的JavaFX API加载FXML文档然后我去了oracle网站并更新jre直到171 8.0更新java 8.0 <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">


-1
投票

同样适合我。正如您所提到的,您的场景构建器版本是8.1.0,而您的Javafx版本是8.0.60。他们是不同的:)两种方法来解决这个问题

  • 卸载当前场景构建器并安装具有相同版本的Javafx的场景构建器
  • 每次使用场景构建器编辑FXML文件时,请将标头中的xmlns属性更改为Javafx版本

例如我的javafx版本是9.0.1而我使用场景构建器10.0.1但在场景构建器中编辑之后我改变了

<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">

enter image description here

为了自己的缘故:)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.