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

带有Jpackage的Java FX应用程序不工作

崔宜修
2023-03-14

我已经用JavaFX创建了我的应用程序。一切都很好,所以我使用Jpackage在Windows中制作了一个可安装的应用程序版本。

在我安装包之后,Windows计算机仍然要求安装JVM。

jpackage -t exe --name "FReport" --description "Time reporting" --app-version 1.0 --input "C:\myapp" --dest "C:\myapp\out" --main-jar "freport.jar" --module-path "C:\Program Files\Java\javafx-sdk-17.0.1\lib" --add-modules javafx.controls,javafx.fxml --win-shortcut --win-menu

我的期望是,我可以使用Jpackage在任何计算机上安装我的JavaFX应用程序,并自动设置JVM。。用户只需点击图标并运行应用程序。

关于Jpackage中的正确命令的任何建议,以将我的JavaFX应用程序jar文件与所有必需的环境(如JVM)打包。。等

共有1个答案

夹谷岳
2023-03-14

您没有为JavaFX指定正确的模块-您引用了lib文件而不是模块,因此jlink不会包含JavaFX库,因为它不读取诸如javafx.base.jmod的模块。下载jmods JDK并参考C:\Somepath\javafx-jmods-VER而不是lib版本。

另外:通过添加--win console打开控制台,并报告运行安装程序和应用程序时的实际错误消息。

您已经使用嵌套的--dest在内部指定了--input,因此您将把整个应用程序复制到第二个版本中

使用已安装的运行时映像或单独的映像(见下文)测试应用程序。只需用当前应用程序引用jlink运行时的安装程序位置,即可查看缺少哪些模块。

如果您每次不更新-app-version,那么除非您取消安装之前的安装,否则任何后续尝试都不会安装新包。这是非常令人沮丧的,jpack应该警告重新安装相同的版本,而不是放弃没有错误消息。

请注意所有这些典型的jpack问题:

  • 启用控制台
 类似资料:
  • 我有一个java应用程序,它在运行时会产生另一个JVM。然而,我想使用jpack打包我的应用程序,它运行得很好。但是在运行时,当我的应用程序尝试使用调用下一个JVM时 我必须知道,应用程序是使用定制的JVM启动的,并且没有像“java”这样的命令。所以我得到的错误是这个java。无法执行getAbsolutePath()。 如果没有java可执行文件,我的应用程序如何在单独的进程中运行另一个jar

  • 我需要帮助一个问题,我遇到了包装我的程序与JPackage。该程序是在Eclipse中创建的非模块化JavaFX应用程序。在Eclipse中,应用程序可以精确地编译和运行。但当我使用命令提示符进行编译和运行时,编译工作了,但应用程序不再运行了。我得到以下错误消息: javac--module-path%path_to_fx%--add-modules javafx.controls,javafx.

  • 我对Java FX应用程序线程有问题。下面是一个伪代码: 问题是睡眠发生在窗口中,该窗口显示在show Menu()中,show LoadingPic()根本没有显示,而在最后窗口中显示的是show Map()。 show LoadingPic中的场景有一个进度条,运行2秒,与Thread.sleep(2000)相同。 因此,似乎javafx应用程序线程块show LoadingPic()和sho

  • 我正在尝试创建一个媒体播放器,使用JavaFX2.0版通过HTTP实时流媒体播放本地媒体文件/媒体。 我能够在媒体播放器中成功播放本地媒体文件。但当我尝试通过HTTP实时流媒体播放媒体文件时,它就不起作用了。当我尝试使用HTTP实时流媒体播放媒体文件时,会出现如下所示的白色空白屏幕。 单击此处查看屏幕截图 下面是我通过HTTP实时流媒体播放媒体的代码: 请告诉我使用JavaFX在媒体播放器中通过H

  • 问题内容: 我需要从Docker容器中在后台运行的Java应用程序中启动Selenium。启动失败,因为在运行时无法访问X11环境。请参阅下面的内容。 我该怎么办? 问题 我从安装Java 8和Jetty 9.3.x 的简单程序开始运行一个简单的服务(实际上是selenium的东西)。该服务实际上是为了启动一些需要UI才能执行的事情而设置的。我遇到的问题是其中的任何内容执行失败,因为UI在我运行的

  • 我一直在尝试运行我的客户端/服务器android程序。但是每当我在android上运行客户端部分时,它都会出错不幸的是,您的应用程序已停止运行。我尝试过阅读logcat,但无法解决问题。下面是我的代码...我从3天开始一直在尝试。需要项目帮助 logcat公司 activity\u new\u main\u活动。xml manifest.xml 新建_main_活动。Java语言