[英]How to bypass JNI error (Java vile version error) file has been compiled by more recent version of the java runtime
[英]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 个答案......
我会说问题在于您的自定义组件。 您可能已经使用 Java 14 编译它们并将生成的 jars 放入 SceneBuilder。 因此,每次加载使用这些组件之一的 FXML 文件时,您都会收到该错误消息,因为组件的类文件版本比 SceneBuilder 本身的版本年轻。 出于兼容性原因,无论如何用目标 11 编译您的组件是个好主意。 您可以使用 Java 14 编译器执行此操作。 这通常会增加兼容性并解决您手头的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.