当前位置: 首页 > 知识库问答 >
问题:

jpack不能完美地与JDBC依赖一起工作

邢飞白
2023-03-14

我制作了一个简单的程序,使用JavaFX和JDBC作为依赖项,我使用jpackage将其打包到一个可安装的文件中,没有任何困难,但当我尝试启动我的程序时,会出现以下错误:

"Missing JavaFX application class com.example.mvnwithjdbcnotused.HelloApplication"

附:该程序在IDE中运行良好,还带有CMD(运行“.jar”文件而不是安装的文件),这只是结果。给出该错误的exe文件。我试着编写相同的程序,但没有调用或使用mysql数据库,而且效果很好,所以我假设问题与依赖关系(即mysql JDBC)或我使用Jpackage工具的方式有关

创建可安装文件所遵循的步骤。exe文件

1-我使用Intellij的工件(包括使用的所有依赖项)打包了我的文件

2-i使用的jpack工具如下:

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不是。

共有2个答案

龙涵蓄
2023-03-14

这不会像您尝试的那样工作,因为这样jpackage无法处理非模块依赖关系。您必须分别使用jlink和jpackage。详情如下:https://github.com/dlemmermann/JPackageScriptFX

满增
2023-03-14

你应该用更多的细节编辑你的问题,当我靠近我的电脑时,我会更新这个答案。

为了让jpack ed exe使用JDBC运行JavaFX,您的jpack应用程序必须包含所有依赖jar或模块。一种方法是使用jlink将您的依赖模块收集为一个映像。jpack隐式执行此操作,或者您可以看到此答案。如果jlink命令是模块化的,请在jlink命令中包含jdbc驱动程序。测试您自己的应用程序是否适用于jlink创建的JRE。

如何让javafx 14编译和运行?

然后在jpackage中使用此jlink图像。

如何将我的Java程序转换为. exe文件?

还必须使用“输入”将其他jar依赖项复制到映像中。设置包。带有附加类路径jar、属性文件等的image文件夹,这些文件可以在cfg文件中作为$APPDIR使用

https://stackoverflow.com/questions/63551326/jpackage-incubator-and-sqlite-database-problem/63558363?r=SearchResults

 类似资料:
  • 根据它的Javadoc,将生成,其中的第一个值是subscribe和第一个next信号之间的经过时间。 以下测试不起作用 它将抛出异常: 我原以为经过的时间至少是1000ms,但结果只有11ms。

  • 希望有人能阐明我一直在研究的问题。我正在将一个小项目从GWT更改为Vaadin,除了Oracle JDBC驱动程序(ojdbc6.jar)之外,我的所有库都在工作。在阅读了周围之后,我发现这个库无法通过公共Maven存储库获得,所以我开始努力从我的本地文件系统将其添加到Ivy中。 这就是问题所在。我已经能够让常春藤解析依赖关系并将其添加到常春藤缓存中,但是它只会将其添加到我的lib / jars文

  • pom.xml版本信息: SpringFox-Swagger2:2.5.0 昂首阔步-核心:1.5.10 springfox-swagger-ui:2.6.1 Springboot:1.5.3 我有一个项目与swagger2和Springboot。 没有@Aspect的项目代码工作得很好。 正确的结果: 但是当我添加以下代码时,swagger-ui没有显示test-api-impl。 swagge

  • Selenium版本:2.41.0(作为Nuget包安装)OS:Windows7浏览器:Firefox浏览器版本:32

  • 为了我的研究,我在firefox中做了一些源代码修改并自己构建。为了自动化测试,我选择使用Selenium,但不幸的是,我新构建的Firefox似乎不支持Selenium。 我做了以下工作: Firefox确实会打开并且响应迅速(我可以在搜索栏中输入一个网站)。但过了一段时间,python脚本崩溃,出现以下错误消息: 我在谷歌搜索了那个错误消息,并且大多数解决方案都建议我应该更新Selenium,

  • 我试图构建的是一个spring-boot(V1.2.3)应用程序,并使用SpringFox(swagger2)V2.0.0公开我的Rest API 我的大摇大摆的Spring配置 以下是如果不使用: 有没有一个解决方案来创建一个正确的、没有价值和逃避的大摇大摆的JSON?