JavaFX 警告:不支援的JavaFX 配置:從「未命名模組@...」載入類別
問題:
安裝並執行JavaFX 時,使用者會遇到警告,指出「不支援的JavaFX 設定:類別已從'unnamed module @...'."
背景:
此警告源自於 Java 9 中引入的 Java 平台模組系統 (JPMS)。模組必須從模組路徑載入為“命名模組”,而不是class-path.
解決方案:
解決此問題:
- 確保JavaFX 位於模組路徑上: 使用--module-path 選項將JavaFX 新增至模組路徑。
- 將 JavaFX 解析為命名模組: 對於非模組化應用程序,使用 --add-modules 選項強制 Java 將 JavaFX 模組解析為命名模組。
- 模組化應用程式: 使用 --module選項將應用程式作為模組啟動,並在模組資訊描述符中使用適當的 require 指令。
- 將 JDK 發行版與 JavaFX 結合使用: 安裝 JDK 發行版包含 JavaFX,例如 BellSoft Liberica JDK 或 Azul Zulu JDK,自動將 JavaFX 作為命名模組載入。
- 忽略警告: 從JavaFX 21 開始,可以選擇忽略警告,但使用不受支援的配置可能會導致未來issues.
部署:
- 請客戶端安裝JavaFX 的JRE:確保客戶端安裝 JavaFX 的 JRE .
- 分發獨立應用程式: 使用工具建立獨立應用程式例如 jlink 或本機映像,將應用程式、庫和 JRE 捆綁在一起。
- 可執行「Fat」JAR 檔案: 將 JavaFX 和所有相依性嵌入到可執行 JAR 檔案中。但是,這種方法隱式不受支持,因為它從未命名的模組會載入 JavaFX。