微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

文件已由Java运行时错误SceneBuilder的最新版本进行编译

如何解决文件已由Java运行时错误SceneBuilder的最新版本进行编译

我已经使用JLink + JPackage将JavaFX应用程序构建为一个独立的应用程序。我正在使用JDK14。但是,当我尝试在IntelliJ的Scenebuilder中打开一个FXML文件时,出现此错误

File has been compiled by a more recent version of the Java Runtime (class file version 58.0),this version of the Java Runtime only recognizes class file versions up to 55.0.

要在开发环境中运行该应用程序,请使用mvn clean javafx:run

当我检查IDE的编译器设置时,JDK正确设置为14,JAVA_HOME变量也正确设置,如下所示。我该如何解决

PS C:\dev> java --version
openjdk 14.0.2 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46,mixed mode,sharing)

解决方法

我认为(我不确定100%,但这是有道理的)对此有2个答案...

  1. 您的intellij使用的Java版本较旧(范围从6到13)。因此,您需要允许intellij使用Java的较新版本(JDK14)。
  2. 使用Java的较早版本构建应用程序,当然,由于Java的较早版本,您可能需要更改某些功能。
,

我想说的是您的自定义组件。您可能已经使用Java 14对其进行了编译,并将生成的jar放入SceneBuilder。因此,每次加载使用这些组件之一的FXML文件时,都会收到该错误消息,因为组件的类文件版本比SceneBuilder本身的版本还年轻。出于兼容性原因,最好还是使用目标11编译组件。您可以使用Java 14编译器来实现。通常,这将增加兼容性,并解决您遇到的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。