如何使用 Jpackage 为 JavaFX 应用程序制作分发格式

2023-12-11

由于 .jar 不再是分发 JavaFX 项目的最佳格式,我愿意使用 JPackage 工具来代替,但在阅读这篇文章后:https://stackoverflow.com/a/68823040/4262407,我最终有多个问题,但首先,我只是想确保我已经很好地理解了我应该遵循的流程:

过程:

1-创建模块化项目

2-将项目打包为.jar格式

3-使用工具Jlink创建定制的运行时映像(以减少输出的大小)

4-使用工具jpackage(它以2和3作为输入)

我还想知道是否可以依靠 Intellij 工件来创建 .jar 文件(第 2 步),使用特定插件是否更好?

最后不清楚的是我们是否需要在 .jar 文件中包含依赖项?因为我相信它们将包含在定制的运行时中,不是吗?


如果你看一下here,其中解释了如何从包含 Maven 插件的模板开始创建 JavaFX 项目,以便使用 jlink 轻松打包应用程序。

这样做可以让你完全依赖 IntelliJ,让事情变得更容易。

获得运行时映像后,您可以将其打包jpackage。已经有人讨论过这个话题了here.

这是一个快速链接那里提到的文章。那里的文章使用 Gradle 展示了它,但是您可以使用 Maven 执行相同的操作,只需使用适当的插件(jpackage-maven-plugin,如中所述另一个答案 here).

另外,从我在您的评论中读到的内容来看,您似乎同时具有模块化和非模块化依赖关系。在这种情况下,您可以使用jdeps来实现你所需要的。有一个好文章在这里关于具有混合依赖关系,特别使用 JavaFX 作为非模块化应用程序中的模块化库的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Jpackage 为 JavaFX 应用程序制作分发格式 的相关文章

随机推荐

  • 使用sql语句insert into将blob文件写入数据库

    我目前正在 Advantage Database Server 中寻找通过 sql 将字节流 所谓的 blob 文件 放入表中的可能性 当我建立一个完整的数据库时 我会这样做 TBlobField BaseTable FieldByName
  • 如何获取 HTML Canvas 中旧生成元素的引用?

    看一下这个例子 var c document getElementById myCanvas var ctx c getContext 2d First rectangle created ctx fillRect 20 20 150 10
  • python panda:返回公共行的索引

    抱歉 如果这是一个相当新手的问题 我试图找出两个数据框之间哪些行是共同的 返回值应该是行索引df2常见于df1 我的笨重例子 df1 pd DataFrame col1 cx cx cx2 col2 1 4 12 df1 col2 df1
  • java中具有多个客户端的Socket服务器

    我必须创建一个套接字服务器来监听多个客户端 假设有6个客户端同时连接到服务器 并且每个客户端同时向服务器发送一些命令 如果这些客户端每 1 秒向服务器发送一次消息 我如何处理来自服务器端 6 个客户端的这些消息 将其存储在表中以及对每个客户
  • 如何在 Angular 的反应表单中设置表单控件的值

    我是角度新手 实际上 我正在尝试从服务订阅数据 并将该数据传递给我的表单控件 例如 它就像编辑表单 import Component OnInit from angular core import FormBuilder FormGroup
  • 在 ios 应用程序中获取某人的 Facebook 公开资料

    我正在开发一个需要 Facebook 登录的 ios 应用程序 我已经成功实现了登录过程 但现在我无法找到如何以及在哪里可以获得用户的个人资料信息 如名字 姓氏 个人资料图片等 我的应用程序有权访问名字 姓氏 个人资料图片和电子邮件 以下是
  • Jupyter-Lite 模块/包/库安装

    如何在 Jupyter Lite 中添加更多模块 我尝试了大多数变化 Jupyter Lite 是否在我的机器上使用 python 库 我希望浏览器中的 Jupyterlite 使用本地安装的 python 库 例如在 Jupyter la
  • 如何在 Clojure 中向数组映射添加元素?

    如何在 Clojure 中向数组映射添加元素 我尝试使用 assoc 但它没有被添加 我本质上想为条目数组映射中任何缺失的项目设置默认值 0 defn create entry doc let entry assoc doc id str
  • 结构数组 - 初始化错误

    我在这里创建一些数据结构 使用 MFC 在 MS Visual C 6 0 中编译 是的 它很旧 struct SOpcodeData BYTE m byDataType DWORD m dwMinValue DWORD m dwMaxVa
  • 如何删除数据框中同时出现在两列中相同的行?

    我有一个数据框 DF1 Id1 Id2 0 286 409 1 286 257 2 409 286 3 257 183 在这个 DF 中 对我来说行286 409 and 409 286是一样的 我只想保留其中一行 我所做的所有这一切都是使
  • 事件处理程序是否会阻止垃圾收集的发生?

    如果我有以下代码 MyClass pClass new MyClass pClass MyEvent MyFunction pClass null pClass 会被垃圾回收吗 或者它会在事件发生时继续触发事件吗 我需要执行以下操作才能允许
  • 存储访问框架,takePersistableUriPermission

    在我的应用程序中 用户可以选择下载目录 如果他选择外部可拆卸SD 卡 不是模拟的 SD 卡 而是内存 例如真正的物理 microSD 卡 从 Android 4 4 开始我只能使用以下命令对其进行写入SAF 存储访问框架 我已经弄清楚如何使
  • 同一模型中的 has_many 和 Belongs_to

    我有一个模型用户 它有一个 角色 属性 可以填充 员工 或 经理 现在我想要一种关系 其中经理拥有 许多员工 而员工属于 经理 是否可以在同一模型中执行此操作 我可以想到这样的事情 has many employees class name
  • 按顺序进行控制

    我正在使用表单的文本字段创建一个 XML 文件 当我使用For Each loop For each Ctrl in Me Controls dosomething Next 它不按顺序排列它们 也就是说 它首先需要TextBox在中间 然
  • MySQL:选择查询执行和结果获取时间随着连接数量的增加而增加

    我的服务器应用程序通过单独的线程与 MySQL 建立多个连接 每个连接都会触发一个SELECT查询并获取结果 然后应用程序将其返回给其连接的用户 我正在使用InnoDB 令我惊讶的是 我发现很奇怪的是 如果我增加 MySQL 的连接数量 查
  • 取消选择后无法再次选择选项

    我有一个输入 id quickS 和一个选择 id lbSLI L 元素 如下所示 我的 Jquery 代码如下 document ready function quickS keyup function lbSLI L option se
  • 如何在 Python 3 的方法装饰器中调用 super ? [复制]

    这个问题在这里已经有答案了 我该如何填写 def ensure finished iterator try next iterator except StopIteration return else raise RuntimeError
  • R 中存在错误的单纯形函数的基本示例

    早上好 我有一个优化问题 我无法在 R 中解决 但在 Excel 中解决 我想优化以下情况 物资和人员的运输 航空公司x1可运输50吨物资和500人航空公司x2可运输150吨物资和250人 50x1 150x2 gt 900 gt 材料运输
  • NUnit 在 TFS 构建中加载失败

    我遇到了 构建部分成功 问题 并出现此错误 NUnit 无法加载 e Builds 184 CSTax 706USServices Test bin Calc Tests dll 但该项目中的所有单元测试都运行并且通过 全绿色 搭建环境 1
  • 如何使用 Jpackage 为 JavaFX 应用程序制作分发格式

    由于 jar 不再是分发 JavaFX 项目的最佳格式 我愿意使用 JPackage 工具来代替 但在阅读这篇文章后 https stackoverflow com a 68823040 4262407 我最终有多个问题 但首先 我只是想确