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

有没有办法使用jpack更改安装程序文件的图标?

罗允晨
2023-03-14

我有一个简单的模块化javafx应用程序。

我用

dir /s /b src\*.java > sources.txt & javac --module-path %PATH_TO_FX% -d mods/hellofx @sources.txt & del sources.txt

这将创建mods目录

然后,我使用命令创建运行时映像

jlink --module-path "%PATH_TO_FX_MODS%;mods" --add-modules hellofx --output hellofx

这将在hellofx目录中创建运行时映像

现在我使用jpackage命令来创建Windows安装程序。在目录中,我有一个应用程序的图标。

jpackage --runtime-image hellofx --module hellofx/hellofx.HelloFX --win-shortcut --win-menu --icon smile.ico

此图标用于已安装的应用程序,但有没有办法为安装程序文件本身创建图标?名为HelloFX-1.0的安装程序文件没有图标。有没有办法将jpack配置为也更改此文件的图标?谢谢帮助!

共有1个答案

钱嘉致
2023-03-14

jpackage工具使用特定于平台的工具创建各种包类型。因此,打包的定制也是非常特定于平台的,必须针对每个支持的平台和包类型单独处理。然而,jpackage有两个常见的特性,可以用来简化此任务。

第一个是选项 --temp some_temp_dir它要求 jpackage 将创建所选包类型所需的所有脚本和资源复制到some_temp_dir目录中。这些是jpackage默认使用的脚本和资源。

第二个是选项--resource-dirsome_resource_dir,它要求jpack首先在目录some_resource_dir中查找资源,然后只对在那里找不到的资源使用其默认值。

使用这两个选项,您可以首先生成一组默认资源,从中可以选择要修改的资源,并将它们复制到some_resource_dir目录。在第二次 jpackage 运行中,您可以应用这些更改。您可以通过这种方式进行的最可能的更改是将各种包类型使用的默认图标与您自己的图标进行交换。

 类似资料:
  • 由于没有快速的lambda计算器,我使用上面的策略将非类型化lambda演算的术语编译为Haskell,以便快速计算它们。我对它的性能印象深刻:该程序创建了一个从到的数字列表,并在我的计算机上在不到一秒钟的时间内将它们相加。这比我预期的要快得多--只比Haskell直接等价物慢4倍--并且足以对我的目标有用。但是,请注意,为了满足类型系统的需要,我必须将函数和术语包装在fun/num构造函数下面。

  • 问题内容: 请考虑以下表格: 部 员工 编写查询以返回人员总数为4或更多的那些部门的雇员的empname和deptname列。记录应按姓氏的字母顺序返回 这是我的看法: 您将如何对此进行改进? 问题答案: 这比较短,而且执行速度可能也更快 从分组开始。您不需要内部查询中的COUNT。然后,联接两个表只是为了获得名称。 *之所以使用 *INNER JOIN, 是因为一旦计数完成,我们已经知道 员工存

  • 我知道Android磨损中的蓝牙调试允许我们在手机中安装应用程序,这些应用程序的android磨损伴侣通过蓝牙安装在手表中。但我想安装正常的android应用程序,而无需任何android磨损组件。我知道如何通过usb做到这一点,但有没有办法使用蓝牙做到这一点?我尝试通过蓝牙连接PC和手表,但无法让adb列出手表。

  • 问题内容: 我正在使用数据库Oracle 11g Express Edition(XE),当我尝试创建Java源对象时,它返回一个错误: ORA-29538:未安装Java 源代码很简单: 我在Oracle文档中发现Oracle XE不包含Java。 有人知道是否可以在其上“安装” Java吗? 问题答案: 不可以,Oracle数据库11g Express Edition 中不提供Java支持,并

  • 问题内容: 我正在尝试使用Swift(不是Xcode项目)编写脚本。需要明确的是,我文件的第一行是 我只是从命令行调用它。 但是,我无法弄清楚该脚本如何使用另一个.swift文件中的代码。它不会从同一目录中拾取它,而且我看不到任何方法。 支持吗? 问题答案: 有更好的方法! 如果您要从中导入文件,将像:

  • 问题内容: 有没有办法编译一个node.js应用程序? 问题答案: 我可能已经很晚了,但是您可以使用“ nexe”模块在一个可执行文件中编译nodejs +您的脚本:https : //github.com/crcn/nexe