现在使用java做桌面应用程序使用什么框架? - 知乎

当用Java编写桌面应用程序时,我们希望它们的外观和感觉都是原生的。一个好的应用程序可以融入其中。它可以提供给用户已经熟悉的体验。

Swing GUI 的外观和感觉:Metal vs. Native

在桌面上,用户旅程并非从应用程序本身开始。 它从安装程序开始。 这就是 Java 世界曾经落后的地方。 但现在不是了。

从 Java 16 开始,JDK 自带了 jpackage。 该工具使用内置 JRE 将应用程序打包成一个捆绑包,并将其包装到本机安装程序和可执行文件中。

在本文中,我将演示如何将 jpackage 与 JxBrowser 应用程序一起使用。 我将创建一个简单的 JxBrowser 应用程序,将其包装到本机安装程序和可执行程序中。 我会给您代码片段,您可以直接复制到你的项目中。

您可以在 GitHub 存储库中找到应用程序的源代码。

配置Gradle

​​我的目标是创建一个简单的Pomodoro tracker,安装它,然后将其作为本地操作系统应用程序启动。 它将使用 Gradle 进行构建配置,使用 Swing 作为用户界面

让我们从头开始创建一个空的 Gradle 项目:

打开 build.gradle.kts 并应用 Java 插件:

我们的应用程序需要两个 JxBrowser 依赖项。 一个包含带有 Chromium 二进制文件的核心 API。 另一个实现了 Swing 工具包支持。

让我们使用 JxBrowser Gradle 插件来添加必要的依赖项。

​​在上面的代码片段中,我使用 jxbrowser.currentPlatform() 来检测当前平台并只挑选必要的 Chromium 二进制文件。 如果您正在构建,比如说,一个仅限 Windows 的应用程序,您可以明确指定 Windows 的 Chromium 二进制文件:

申请代码

我们的应用程序非常简单。 它打开一个 JFrame,添加 BrowserView 组件,该组件加载和显示带有Pomodoro Tracker的网页。

打包应用程序

用 Java 编写的桌面应用程序需要携带它们在运行时所需的所有必要库。 通常的方法是将库与应用程序合并到一个大的 Uber JAR 中。 它需要额外的配置,不适合模块化项目。

​​现在有一个更简单的选择:将一堆 JAR 文件收集到一个文件夹中,让 jpackage 处理其余的。

首先,让我们配置构建主应用程序 JAR:

然后让我们创建一个任务来收集依赖项的 JAR 文件:

这两个任务足以从命令行启动应用程序:

现在一切准备就绪,可以配置 jpackage。

这是一个命令行工具。 但是,我更喜欢将所有内容都保存在 Gradle 脚本中。 它们比一堆 .sh 和 .bat 文件更容易阅读和维护。

我推荐 Petr Panteleyevorg.panteleyev.jpackage 插件。 该插件将 jpackage 的命令行 API 封装到 Gradle DSL 中。 以下是它的应用:

以下是我配置它以生成安装程序的方式:

一切都配置好后,唯一要做的就是调用 jpackage 任务。 任务完成后,我们将在 build/dist 目录中找到安装程序:

对于Windows,您将需要 https://wixtoolset.org/releases/

安装程序运转中

Useful Links 参考链接

  1. Official JxBrowser page.
  2. This example on GitHub.
  3. Other JxBrowser examples.

原网址: 访问
创建于: 2023-08-23 14:54:31
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论