问题标签 [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 投票
0 回答
53 浏览

java - jpackage 在 Mac OS 11.2 上失败

我有Mac OS 11.2Openjdk 15.0.1。我运行jpackage,但是当我使用选项时--license-file license.txt ,包是构建的(但没有许可证)并且我在命令行中有一个错误:

为什么它失败了,我该如何解决?

0 投票
1 回答
291 浏览

java - 尝试使用 jpackage 打包 javafx 程序时出错

我打算用 jpackager 打包一个 JavaFX 程序,所以我在 GitHub 上找到了这个项目并下载了它,但是当我尝试打包这个项目时,我得到了一个错误......

这是 -X 切换后的输出:

这是pom文件:

我正在使用 maven 开发 JDK 14.0.2,并尝试使用 jdk 15 打包项目并得到相同的错误,并且我完成了 GitHub 上的存储库所需的所有先决条件,但我找不到任何解决此错误的方法。

这是我从https://github.com/dlemmermann/JPackageScriptFX获取项目的存储库

0 投票
0 回答
348 浏览

installation - 修改jpackage MSI Installer Launch Exe After Installer

我正在使用 jpackage 为 Java 应用程序创建 .msi 安装程序。生成的 .msi 文件工作正常,但我希望安装程序在安装结束时自动启动生成的应用程序。我尽可能保持用户体验无缝,并且不想提供用户界面 - 只需在准备好时启动应用程序。

我找到了这个答案:安装 msi 后运行 exe?...但是当我在安装程序上运行带有[object Error]消息的命令时脚本失败。我尝试了一些调整,该脚本似乎确实能够成功打开 .msi 数据库,但由于某种原因,它不是完全正确的命令集。

可以在以下位置找到我开始使用的 .msi 示例:

https://github.com/wiverson/maven-jpackage-template/releases

...在 Windows 部分。

我需要的是一个脚本(类似于在另一个问题中发布的 EnableLaunchApplication.js),它与 .msi 一起使用,以便在安装程序完成时简单地启动已安装的 TestApp.exe。没有 UI,只需在完成后自动启动应用程序。我可以根据需要调整脚本以添加到我的构建环境中。

jpackage 安装程序由https://wixtoolset.org/生成- jpackage 创建并运行 Wix 以生成 .msi。如果可能的话,我只想添加一个简单的构建步骤来调整生成的 .msi。

0 投票
3 回答
824 浏览

java - Gradle jpackage 创建无法运行的应用程序

我正在尝试使用简单的 Gradle JavaFX 应用程序运行 jpackage,主要是为了尝试一下。它没有什么特别之处,它是添加了 Gradle 的 IntelliJ JavaFX 示例。该应用程序在gradlew clean build run. 但是,当使用gradlew jpackage生成的 exe 创建包时会立即崩溃并创建 hs_err_pid。

在此处查看完整输出:https ://pastebin.com/LgbSFa5L

我已经尝试过类似问题的答案,但没有奏效。

  • zip.dll从复制{app}\runtime\bin{app}\
  • 尝试其他 JDK
    • 采用OpenJDK 11
    • 采用OpenJDK 14
    • 采用OpenJDK 15
    • BellSoft Liberica JDK 15

build.gradle 看起来像这样

编辑:

使用WinDbg (preview)运行 exe 时,我得到以下输出。可能与我正常安装 Java 8 有关,但我希望它使用捆绑的 SDK 而不是系统。

0 投票
1 回答
179 浏览

java - 在持续交付代理上使用 jpackage 构建 Windows 安装程序

我在 CD 代理上运行 jpackage 任务时遇到问题。我收到以下错误:

light.exe : error LGHT0217 : Error executing ICE action 'ICE01'. The most common cause of this kind of ICE failure is an incorrectly registered scripting engine. See http://wixtoolset.org/documentation/error217/ for details and how to solve this problem. The following string format was not expected by the external UI message logger: "The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance.".

我做了一些研究,基本上这个问题可以通过以下方式解决:

  1. 为代理的用户添加管理员权限
  2. env 变量大小的veryfing 大小(对于某些人来说,大小大于 32KB 的 env 变量会导致类似的错误)
  3. 抑制 ICE 验证

在我的情况下,每个解决方案都无关紧要或有问题。

  1. 我无法在 CD 上使用管理员用户
  2. env 变量小于 32KB (10KB)
  3. 我找不到使用 jpackage 抑制 ICE 验证的方法 - 我知道可以通过将 -sval 传递给 light.exe 或在 wixproj 文件中指定属性来完成,但我不知道如何将 light.exe 参数输入到 jpackage (如果可能的话)并且在 --resource-dir 中传递的 wixproj 文件似乎没有做任何更改。

需要明确的是,它在我的本地环境中运行良好。

所以很可能我的问题可以归结为是否可以从 jpackage 级别抑制 ICE 验证的问题。

我正在为 gradle 使用badass-runtime-plugin并尝试为 javafx + spring boot 应用程序构建安装程序。这是我的build.gradel相关部分:

0 投票
1 回答
82 浏览

java - 查询 JPackage 创建的 .cfg 文件的最简单方法

JPackage 创建的 .cfg 文件包含一些有用的元数据,例如 app.version。这是一个片段...

有没有一种简单的方法可以通过Java查询这个文件,而不需要从文件系统手动加载文件并解析它?

对于上下文,我们希望从 JAR 中的清单中检索版本,但不幸的是,当使用模块构建应用程序时,这似乎不可用。

干杯。

0 投票
0 回答
43 浏览

gradle - 如何使用 Gradle(使用 Kotlin DSL)为多个平台打包模块化 JavaFX 项目

如何使用 Gradle 为多个平台正确打包模块化 JavaFX 项目?我曾想过创建一个胖 jar,但 Stackoverflow 上的某个人建议这“由于各种原因实际上不起作用”(没有提供原因),我应该使用像 jpackage 这样的工具来创建真正的安装程序。但是,我已经尝试过 jpackage,但它根本不适用于 Linux。所以这是我的问题:

使用 Gradle(使用 Kotlin DSL)打包模块化 JavaFX 项目以使其在 Windows、MacOS 和 Linux 上运行的最佳方法是什么?

0 投票
1 回答
69 浏览

sqlite - 使用 JPakcage 进行 SQLite 部署的 JavaFx:安装时不加载应用程序

所以我正在尝试部署一个 JavaFX(使用 SQLite)桌面应用程序

  • 我正在使用 open-JDK-16、java SDK-16 和 SQLite.3.20.1 JDBC 驱动程序

  • 我正在使用 Intellij IDEA(2020.3.2 社区版),当我运行我的代码时它工作正常

  • 如果数据库文件不存在,将创建一个并且其中的表也将被创建并填充一些数据,请参见我的项目文件夹

  • 使用 JPackage 部署后,安装程序已成功创建,我可以毫无问题地安装它

但是当我运行可执行文件时,它什么也不做,但控制台窗口在执行时显示下面的输出。

非常感谢您,感谢任何可以帮助我解决此问题的人

这是我从窗口控制台收到的错误

0 投票
0 回答
44 浏览

java - 自定义 jpackager(wix 工具集)

有没有办法自定义 jpackager 的 wix 工具集?

我已经知道我可以用--resource-dir参数覆盖 jpackager 使用的 wix 配置。

我的目标是创建一个安装 Windows 服务的安装程序。我不在乎最终解决方案是使用<ServiceInstall>wix 工具集完成,还是在安装后调用像 nssm 这样的第三方程序。

0 投票
1 回答
426 浏览

javafx - 分发使用自动模块的 JavaFX 应用程序

我创建了一个 JavaFX 应用程序。它在我的 Intellij IDE 中完美运行。现在我想分发应用程序——即我想获得一个用户可以下载的安装程序,然后它会为他们安装应用程序。

我在这里找到了一篇非常有趣的文章。这篇博客文章基本上描述了我想要实现的目标。但是有两个区别:

  1. 我使用的是 Maven 而不是 Gradle

  2. 我有使用自动模块的依赖项,例如 iText7 和 apache.commons.lang3

自动模块的使用使事情变得非常复杂。有一个名为 ModiTect(此处)的 GitHub 项目已被编写用于解决这些问题。虽然我没有使用 ModiTect 的经验,甚至我的 Maven 知识也几乎不存在(意思是:我真的不知道我在 pom.xml 中做什么)。

我正在寻找的是关于如何将ModiTect(以及必要时的jpackage)集成到我的pom.xml中的解释(逐步),以便为我的使用自动模块(以及sqlite)的JavaFX应用程序获取安装程序数据库,但这应该不是问题)。

有人可以提供这个解释或让我参考教程吗?

我在这个问题的结尾提供了一个 MWE。MWE 是一个 TestApp。为了说明问题,运行应用程序并按下“打印 PDF”按钮。在资源中创建一个 pdf --> pdf

执行 javafx:ru​​n 时 MWE 会编译运行 执行 javafx:jlink 时会出现与 automodules 使用有关的错误

我不知道如何解决这个问题。ModiTect 似乎是一个很有前途的插件。另一种可能的方法可以在这个GitHub 存储库中找到。但正如我之前所说:我的 Maven 知识不足以真正掌握这里发生的事情。任何帮助对我来说意义重大!

MWE:

项目结构

pom.xml:

模块信息.java:

TestAppController.java:

测试应用程序.java:

testApp.fxml: