解决JavaFX报错缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
解決JavaFX報錯缺少 JavaFX 運行時組件, 需要使用該組件來運行此應用程序
- 方法 1:使用 Java 8
- 方法 2:使用 Java 模塊系統
- 方法 3:使用引導類
??很多 JavaFX 初學者在下載并運行老的 JavaFX 項目時,經常遇到下面這個錯誤。
錯誤: 缺少 JavaFX 運行時組件, 需要使用該組件來運行此應用程序??為什么發生這種錯誤呢?這需要談及 JavaFX 的歷史。在 Java 8 之后,JavaFX 從 JDK 中分離出來,然后在 Java 9 時,Java 引入了 Java 模塊系統。從那之后,JavaFX 要求使用 Java 模塊系統來運行 JavaFX。因此,Java 8 的時候,是沒有 Java 模塊系統的,而且此時 JavaFX 尚未從 JDK 中分離出來(沒有分離出來意味著運行 JavaFX 項目不需要添加 JavaFX 依賴),所以很多老的 JavaFX 項目使用的是 Java 8。因此,當直接使用 Java 8 以上的環境運行沒有使用 Java 模塊 JavaFX 老項目時就會出現如上報錯。
??知道原因解決起來就很簡單了。方法有很多,這里列舉如下。
方法 1:使用 Java 8
??直接使用 Java 8 運行 JavaFX 項目,而且這樣做了之后還無需添加 JavaFX 依賴。個人是很不建議使用這種方法的,但是很多遇到此問題的讀者只是一個剛使用 JavaFX 的新人,他們拿著從網上免費下載的代碼卻不知道如何運行,他們只是想先試著看看運行效果,而且他們還不清楚如何引入 JavaFX 依賴,更不擅長使用 Maven 或 Gradle。那么,可以使用這種方法。從短期來看,可以省一些事情。
方法 2:使用 Java 模塊系統
??使用 Java 模塊系統,建議使用這種方法。這里不詳細介紹什么 Java 模塊系統以及它的語法,因為這不是本文的重點。構建 Java 模塊系統只需要在頂級目錄中添加一個模塊聲明文件 module-info.java。如果讀者不知道應該在模塊聲明文件中編寫什么,可以使用 IntelliJ IDEA 來新建一個 JavaFX 項目,然后生成的示例項目中就會有一個簡單的 module-info.java 示例。
module com.example.demo {requires javafx.controls;requires javafx.fxml;opens com.example.demo to javafx.fxml;exports com.example.demo; }方法 3:使用引導類
??使用一種引導類來代理啟動 JavaFX 應用。舉個例子,現在筆者將 方法 2 中使用 IntelliJ IDEA 新建的 JavaFX 示例項目中的 module-info.java 刪除。此時運行此項目應該會報前述的錯誤。現在,只需要編寫一個引導類調用 JavaFX 入口 main 方法即可消除這個錯誤。
package com.example.demo;public class JavaFXBootstrap {public static void main(String[] args) {HelloApplication.main(args);} }??因為此處沒有使用模塊系統,所以 Java 運行時會為其自動生成一個匿名的模塊系統。可以看到編譯器提出了如下警告。
X月 XX, 202X XX:XX:XX XX com.sun.javafx.application.PlatformImpl startup 警告: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @1b3d156e'總結
以上是生活随笔為你收集整理的解决JavaFX报错缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何验证 MySQL 的 InnoDB
- 下一篇: 使用 GraalVM 将纯 JavaFX