问题标签 [jpackage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
511 浏览

java - JPackage-我应该将资源文件夹放在我的 Windows 应用程序映像的哪里?

在我制作的应用程序中,我将资源文件放到了一个文件夹(名为YoutubeAudioAutoDownloader-resources)中,并确保当我将该文件夹放在我的应用程序的 .jar 文件旁边时它可以正常工作。

当我使用jpackage以下 cmd 代码制作 exe 安装程序时:(抱歉,由于我的目录排列很糟糕,脏代码,我只想强调的部分是--type--resource-dir选项)

我有问题:

我应该把我的YoutubeAudioAutoDownloader-resources文件夹放在哪里?app我的应用图像文件夹的文件夹中?还是因为选项我不必这样做--resource-dir?(我不确定我是否正确了解该选项)

0 投票
0 回答
52 浏览

maven - 无法为 javafx 项目创建 jar 或 exe

所以我想为我的 javafx 项目创建 exe 文件。所以提到了包github。所以我从 github https://github.com/dlemmermann/JPackageScriptFX拿了那个项目,然后当我写这个命令时 mvn clean install 他们已经写在那里自述文件我收到以下错误

这是日志

我的绒球

而且我无法理解在 github 中提供的 jpackage,所以请帮助并给我一些教程,重新升级我想构建一个 exe 文件

0 投票
1 回答
754 浏览

java - jlink不使用自动模块

我使用 jpackage 在 Windows 10 上为 JavaFX 应用程序创建了一个“.exe”文件。之后,通过双击应用程序的图标,应用程序没有启动。我意识到我错误地使用了这个命令,它是为非模块化应用程序量身定制的:

现在我正在尝试为模块化应用程序使用 Oracle doc 中的正确命令语法:

这是我基于 Oracle 给出的语法的命令:

但是,我收到关于 jlink 不使用自动模块的错误:错误消息:

我在 module-info.class 中的应用程序模块名称是

应用程序主要是 org.openjfx.mavenfxedittableview.TableEditApp 和 org\openjfx\mavenfxedittableview 目录结构是“c:\sample”目录中的相对路径。

构建类是:


以下是应用程序 jar 文件的内容:


这是 jar 清单文件:

最后,我发现了这个 Maven 插件 ModiTect:

,它将描述符嵌入到自动模块的 jar 文件中,但是这将非常乏味和耗时,因为罪魁祸首自动模块甚至不在我的模块描述符中。这意味着我可能必须通过 .m2 存储库并将它们一一转换。有更好的解决方法吗?

谢谢

0 投票
2 回答
1375 浏览

javafx - JavaFX 部署:无法启动 JVM

问候

我使用由 jpackage 创建的 msi 安装程序部署了一个简单的 JavaFX 应用程序。双击安装在 Windows 10“程序文件”目录中的应用程序图标时,会显示错误“无法启动 JVM”。在部署之前,我从命令提示符处测试了应用程序 jar 文件,没有任何问题。检查应用程序安装目录时(在“C:\Program 文件”下)它有所有运行时 dll 等等,所以我不确定是什么导致了这个错误?这是我用来构建运行时映像的 japckage 命令:

更新

按照评论部分给出的建议,我在我的机器上安装了 JMODS,并发出了一个 jpackage 命令行来指向 JMODS 文件而不是 JAVAFX_HOME,如下所示:

我使用 MSI 运行时映像安装了应用程序,这肯定解决了“无法启动 JVM”问题。应用程序启动了,但是,我有一个 WebView 组件,当用户单击“雅虎”按钮时,它应该显示来自https://us.yahoo.com的内容,而当应用程序作为独立的应用程序,但是当我从命令行运行 jar 文件时它可以工作。我需要向 jpackage 添加任何内容吗?
如果需要源代码和 FXML 文件,请告诉我。
谢谢

0 投票
1 回答
305 浏览

java - 如果应用程序使用 jpackage 构建,则 Java SSL 握手失败

我正在使用 jpackage 在 Mac 和 PC 上分发 Java 应用程序,当它尝试使用来自某些站点的 https 加载图像时,我遇到了握手失败。如果我在 Mac 和 PC 上从 Eclipse 或命令行运行代码,则代码可以正常工作,但如果将其作为打包应用程序运行,则不能。如果我从某些站点加载图像,问题就会消失:例如https://st4.depositphotos.com 。这让我觉得“问题站点”不在信任链中。

但是,作为打包应用程序运行时,为什么信任链会有所不同呢?

使用 java 14.0.2 和 15 可以看到相同的行为。以下示例使用 OpenJDK 运行时环境(内部版本 15+36-1562)。

请注意,jpackage 将运行时集成到应用程序中。这是一个非模块化应用程序(我展示了下面使用的 jpackage 选项)。

在 Mac 上调试并使用 -Djavax.net.debug=all 选项,我查找了打包应用程序正在使用的 trustStore。打印的路径无效,因为它以 /Applications 而不是 /Volumes 开头,但除此之外一切正常。也许这只是一个打印问题?无论哪种方式,我都使用 -Djavax.net.ssl.trustStore=/Library/Java/JavaVirtualMachines/jdk-15.jdk/Contents/Home/lib/security/cacerts 来强制打包的应用程序使用与 JDK 相同的 trustStore 和这并没有改善问题。

你认为我的代码有问题还是 jpackage 有问题?非常感谢您的帮助!

这是打包命令:

这是代码:

以下是调试输出中的几行:

在对我的问题有用的评论之后,这是一个解决问题的示例打包脚本:

0 投票
1 回答
458 浏览

java - 在适用于 Linux 和 Mac 的 Windows 上使用 Java 15 创建个性化 JRE

我找到了一种在 Windows 上创建可以在 Windows 上使用的个性化 JRE 的方法。

我在这个网站上发现了一个类似的问题,答案是“你只需要使用 Linux jmods 目录来制作 Linux 个性化 JRE”。

因此,使用AdoptOpenJDK (build 15+36),我尝试使用以下命令来做到这一点:

但是以上三个命令创建的个性化 JRE 都是 Windows 的。

我的命令有问题吗?JDK 15 中是否存在影响该jlink工具创建自定义运行时映像的方式的变化?

0 投票
0 回答
235 浏览

windows - 如何使用 jpackage 创建带有 WiX 的 32 位安装程序

我正在使用 Java 14 jpackage 打包一个 32 位 JVM 和 Java 应用程序,而 Java 14 jpackage 又使用 WiX。

我可以成功创建一个 .msi 安装程序,但它似乎是一个 64 位应用程序,甚至无法在 32 位 Windows 7 上启动。

那么如何创建 32 位 .msi 安装程序?

AFAIU jpackage 为 Wix 创建了所有配置文件,但根据 jpackage 输出,我可以自定义其中的一些文件,这是 jpackage 的输出,暗示了这种可能性。

使用默认包资源 WinLauncher.template [创建可执行属性文件的模板](将 TestApp.properties 添加到 resource-dir 进行自定义) 使用默认包资源 main.wxs [Main WiX 项目文件](将 main.wxs 添加到资源-目录自定义)。使用默认包资源 overrides.wxi [覆盖 WiX 项目文件](将 overrides.wxi 添加到 resource-dir 以进行自定义)。

我用谷歌搜索了高低,但我找不到答案。

我尝试了这样的事情(除其他外):

文件:overrides.wxi

但这并没有什么不同。

我很确定这很简单,但我无法弄清楚。

0 投票
1 回答
242 浏览

java - jpackage 将文件添加到 installdir

我正在使用 Java 15 中的 jpackage 为我的 javafx 应用程序创建安装程序。因为其中一个库需要一些可视化 c++ dll,所以我也想包含它们。它们应该放在主 .exe 和 .ico 所在的目录中。

我不明白如何编写 overrides.wxi 来实现这一点。 https://docs.oracle.com/en/java/javase/14/jpackage/override-jpackage-resources.html#GUID-1B718F8B-B68D-4D46-B1DB-003D7729AAB6 这是我找到的所有信息。

0 投票
0 回答
72 浏览

java - jpackage (Java 15) 安装程序在 Windows 7 上抛出“vcruntime150.dll missing”

我想用一个简单的安装程序来发布我的 javafx 应用程序。从 Java 15 开始,jpackage 省略了主文件夹中的 dll。Windows 7 没有内置 vcruntime140.dll,因此在启动时它会抛出“程序无法启动,因为 VCRUNTIME140.dll 丢失...”,但在按“确定”时仍会启动。

由于安装 VC redist 2015-2019 需要管理员权限,我想通过设置 https://docs.oracle.com/en/java/javase/14/中提到的 overrides.wxi 将缺少的 dll 包含到 InstallDir 中jpackage/覆盖-jpackage-resources.html#GUID-1B718F8B-B68D-4D46-B1DB-003D7729AAB6

但我不知道在这个文件中写什么。

0 投票
2 回答
251 浏览

java - 使用 jdeps + jlink + jpackage 构建 windows 自包含应用程序后的 EXCEPTION_ACCESS_VIOLATION

我正在尝试构建一个用于windows使用jdeps++的捆绑包(自包含应用程序jlinkjpackage

在 mac 上,使用相同的过程,我设法通过结合使用+ +的脚本为该项目图形编辑器创建(遵循JPackageScriptFX作为参考)一个完全工作的独立“.app” 。mavenjdepsjlinkjpackage

我希望在安装 wix 3.x 后,相同的 ++ 配置可以在Windowsjdeps运行。jlinkjpackage

该过程运行良好并生成安装程序,但不幸的是,当我启动“.exe”文件时出现以下错误。

  • 可以在此处找到有关我使用的配置的更多详细信息。
  • 我使用的“bat”脚本是这个:build_app.bat
  • maven install在 Windows上的主项目上运行 a可以复制问题。

完整的“.log”打印可以在这里找到。