Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX FXML API版本警告_Java_Javafx_Fxml - Fatal编程技术网

JavaFX FXML API版本警告

JavaFX FXML API版本警告,java,javafx,fxml,Java,Javafx,Fxml,我最近开始在启动JavaFX应用程序时注意到以下警告: 警告:由版本8.0.60的JavaFX运行时加载带有版本8.0.65的JavaFXAPI的FXML文档 所讨论的FXML是由Gluon Scene Builder 8.1.0创建的,使用其捆绑的Java版本1.8.0_65运行。该应用程序是使用my OS Java 1.8.0_72版启动的 FXML的根节点没有该属性 xmlns="http://javafx.com/javafx/8.0.65" 但是我认为1.8.0_72>1.8.0_6

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

警告:由版本8.0.60的JavaFX运行时加载带有版本8.0.65的JavaFXAPI的FXML文档

所讨论的FXML是由Gluon Scene Builder 8.1.0创建的,使用其捆绑的Java版本1.8.0_65运行。该应用程序是使用my OS Java 1.8.0_72版启动的

FXML的根节点没有该属性

xmlns="http://javafx.com/javafx/8.0.65"
但是我认为1.8.0_72>1.8.0_65,那么为什么我会收到这个消息呢? 这是我应该担心的事情吗?有没有办法问jre什么是JavaFXAPI版本(显然与Java版本不同)

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

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


看来JDK中的JavaFX版本错了?或者我有一个旧的jfxrt.jar?我会调查的

我认为您的
JDK
版本是
1.8.0\u 60
JRE
版本是
1.8.0\u 65

因此,您应该对这两个版本使用相同的版本

您可以在命令提示符下分别检查当前的
JDK
JRE
版本

java -version
javac -version
或者您可以使用以下java代码浏览系统属性


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

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

如果使用以下表格:

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

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

我也有这个问题。我只想更改*.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代,可能会有所不同。

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

JRE系统库右侧的项目浏览器中显示了[J2SE-1.5]。 我右键单击JRE系统库,进入属性。 从执行环境切换到工作区默认环境

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

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

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


是的,您可以在fxml文件中的xmlns选项下更改版本,但每次在场景生成器中修改fxml时都必须更新条目。

我也遇到过同样的问题,但我通过执行以下步骤解决了问题


如果您正在使用Intellij IDEA转到文件->项目结构->SDK并单击(-)符号删除您之前拥有的所有其他JDK,然后单击(+)符号将新JDK添加到项目中C:\Program Files(x86)\Java\jdk1.8.0\U 172,我也是这样。正如您提到的,场景生成器版本是8.1.0,而Javafx版本是8.0.60。他们是不同的:) 有两种方法可以解决这个问题

  • 卸载当前的场景生成器,并使用相同版本的Javafx安装该场景生成器
  • 每次使用场景生成器编辑FXML文件时,请将标头中的xmlns属性更改为Javafx版本
例如,当我使用scene builder 10.0.1时,我的javafx版本是9.0.1,但在scene builder中编辑后,我会更改

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


出于个人原因:)

我也遇到了samme问题,因为我正在加载我的fxml文件 警告:由版本8.0.111的JavaFX运行时加载带有版本8.0.171的JavaFXAPI的FXML文档 然后我去了oracle网站,更新了jre,直到java 8.0的171更新

试试
System.out.println(“java版本:”+System.getProperty(“java.version”))
System.out.println(“javafx.version:+System.getProperty(“javafx.version”)。它们几乎肯定是一样的,所以可能你没有使用你认为是的OS Java版本运行,事实上它们是不一样的。我已经编辑了我的问题。我怀疑由于javafx在Debian上仍然是一个单独的包,所以不知何故它没有更新。啊,是的,您使用的是开放JDK(我猜),所以javafx是一个单独的包。看起来您有一个旧版本的JavaFX。因此,我不知道有哪种FXML是针对u65而不是u60的,但一般来说,我想您应该使用至少与构建它的版本一样新的版本来执行。如果可能的话,我会继续将您的JavaFX版本与您的Java版本更新。目前openjfx包的版本是8u60,因此升级意味着从源代码构建,我不愿意这样做。有一些讨论,但我真的很困惑,为什么他们仍然是两个独立的软件包(以及为什么OpenJFX一个没有更新)。我没有得到这个答案的否定投票-这正是我的工作!条目“xmlns:fx=”“我没有碰过。请注意:SceneBuilder会覆盖它!
xmlns="http://javafx.com/javafx/9.0.1"
xmlns="http://javafx.com/javafx/9.0.1"