簡體   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