[英]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.