[英]Jpackage doesn't work perfectly with JDBC dependency
我制作了一個使用 JavaFX 和 JDBC 作為依賴項的簡單程序,我使用 jpackage 將它打包到一個可安裝的文件中,沒有任何困難,但是當我嘗試啟動我的程序時,它給了我以下錯誤:
"Missing JavaFX application class com.example.mvnwithjdbcnotused.HelloApplication"
PS:該程序在 IDE 和 CMD 中運行良好(運行“.jar”文件而不是安裝的文件),只是產生該錯誤的 resulted.exe 文件。 我嘗試制作相同的程序,但沒有調用或使用 mysql 數據庫,它工作正常,所以我認為問題與依賴項(即 MySQL JDBC)或我使用 Jpackage 工具的方式有關
我遵循的步驟來創建 installable.exe
1-i 使用 Intellij 的工件打包我的文件(包括所有使用的依賴項)
2-我使用 jpackage 工具如下:
jpackage --name "name of the file" --description "description" --vendor "vendor" --app-version 1.0 --input "the file that has the .jar created by the first step" --main-jar "name of the jar"--dest "destination file " --module-path "path to javafx jmods files " --add-modules javafx.controls,javafx.fxml --win-console
3-安裝文件
4-運行程序
如果問題是來自我遵循的步驟或來自依賴項或工具,我真的很困惑
我最后想提的是我的項目是模塊化的,但 MySQL JDBC 不是。
你應該用更多的細節來編輯你的問題,當我靠近我的電腦時會更新這個答案。
為了使 jpackaged exe 運行 JavaFX 和 JDBC,您的 jpackage 應用程序必須包含所有相關的 jar 或模塊。 一種方法是使用 jlink 將依賴模塊收集為一個圖像。 Jpackage 隱式執行此操作,或者您可以看到此答案。 如果它們是模塊化的,請在 jlink 命令中包含 jdbc 驅動程序。 測試您自己的應用程序是否與 jlink 創建的 JRE 兼容。
然后在 jpackage 中使用這個 jlink 圖像。
還必須使用--input
將其他 jar 依賴項復制到映像中。 使用附加類路徑 jars、屬性文件等設置jpackage.image
文件夾,這些文件可以在cfg
文件中用作$APPDIR
這不會像您嘗試這樣做的方式那樣工作,因為這樣 jpackage 無法處理非模塊化依賴項。 您必須分別使用 jlink 和 jpackage。 詳情在這里描述: https://github.com/dlemmermann/JPackageScriptFX
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.