首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

macOS JavaFX 打包 DMG 失敗:JDK 版本不相容解決方案

     編輯:程式設計疑難解答

錯誤現象

使用 JavaFX 打包工具生成 .dmg 安裝包時,報錯「缺少輸入資源」或簽名/資源複製失敗。

根本原因

早期 JDK(如 JDK 8u20 之前)內建的打包工具 javapackager 在 macOS 上對資源處理、簽名機制有缺陷,或與系統 hdiutil 版本衝突。

解決步驟

  1. 升級 JDK:安裝最新 LTS 版本(JDK 17/21)或至少 JDK 11.0.10+ / 15+,內含修復後的 jpackage 工具。
  2. 改用 jpackage:JDK 14+ 標準化 jpackage 替代舊工具,命令範例:
    jpackage --type dmg --input target/app --main-class com.example.Main --name MyApp --icon icon.icns
    
  3. 檢查資源路徑:確認 --resource-dir 指向的目錄確實包含 .icns 圖標、Info.plist 等必要檔案。
  4. 簽名與公證:macOS 10.15+ 強制要求 Developer ID 簽名並經過 Apple 公證,否則無法分發。在 jpackage 中加入 --mac-sign --mac-signing-key "Developer ID Application: ..."。

避坑提醒

  • 專案若仍使用 JavaFX 8(內建於 JDK 8),請遷移至獨立模組版 JavaFX 11+,配合模組化打包。
  • 建構腳本中明確指定 JAVA_HOME 指向新版 JDK,避免系統預設舊版干擾。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved