繁体   English   中英

文件已被更新版本的 Java 运行时错误 SceneBuilder 编译

[英]File has been compiled by a more recent version of the Java Runtime error SceneBuilder

我已经使用 JLink + JPackage 将 JavaFX 应用程序构建为一个独立的应用程序。 我使用的是 JDK 14。但是,当我尝试在 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 编译它们并将生成的 jars 放入 SceneBuilder。 因此,每次加载使用这些组件之一的 FXML 文件时,您都会收到该错误消息,因为组件的类文件版本比 SceneBuilder 本身的版本年轻。 出于兼容性原因,无论如何用目标 11 编译您的组件是个好主意。 您可以使用 Java 14 编译器执行此操作。 这通常会增加兼容性并解决您手头的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM