簡體   English   中英

Jpackage 不能與 JDBC 依賴項完美配合

[英]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 兼容。

我怎樣才能讓 javafx 14 編譯運行?

然后在 jpackage 中使用這個 jlink 圖像。

如何將我的 Java 程序轉換為 .exe 文件?

還必須使用--input將其他 jar 依賴項復制到映像中。 使用附加類路徑 jars、屬性文件等設置jpackage.image文件夾,這些文件可以在cfg文件中用作$APPDIR

https://stackoverflow.com/questions/63551326/jpackage-incubator-and-sqlite-database-problem/63558363?r=SearchResults&s=5|19.2953#63558363

這不會像您嘗試這樣做的方式那樣工作,因為這樣 jpackage 無法處理非模塊化依賴項。 您必須分別使用 jlink 和 jpackage。 詳情在這里描述: https://github.com/dlemmermann/JPackageScriptFX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM