要从零开始搭建一个 Java 桌面应用,通常需要几个小时的配置和准备。但如果借助 一个 prompt(提示词)、一个优秀的 LLM(大语言模型)和一份简单的架构蓝图,就能在几分钟内生成完整的项目呢?

在本文中,我将向您展示我是如何做到这一点的,并逐步讲解我使用 Cursor 和 Claude 4 Sonnet 完成的具体步骤。

我们的动机 

在深入细节之前,先谈谈我们为什么要做这件事。我之前曾为另一篇文章搭建了一个桌面演示应用,文章题为 “使用 Shadcn UI 构建 Java 桌面应用”。整个过程相当繁琐,我们很快意识到:如果要为其他场景开发类似演示应用,就需要重复编写相同的样板代码、执行相同的环境配置步骤。

我们希望找到一种能 “即时搭建” 这类演示应用的方法。正是在这个时候,我们产生了一个想法:能否借助 LLM 和 AI 驱动的 IDE 来自动完成这些工作?

我们是如何实现的 

我从之前开发的演示应用入手,将该项目的代码和结构提供给 LLM,要求它生成一份架构概述文档。在这份概述中,LLM 详细描述了我们使用的技术栈 —— 包括 Protobuf/gRPC、shadcn/ui、React 和 JxBrowser,同时还说明了项目的目录结构以及各组件之间的协作方式。

此外,我还让它解释了 Java 后端与 Web 前端之间的通信层工作原理。这份文档最终成为了 “架构蓝图”,LLM 可以依据它,从一个 prompt 生成全新的应用项目。

遇到的挑战 

当然,事情并非简单地将架构蓝图喂给 LLM,然后点击 “go” 就能完成。在生成项目的过程中,我遇到了不少问题和不一致的情况:

  • 它对 JxBrowser API 的理解不足,尤其是在使用 InterceptUrlRequestCallback 配置网络层时,所以我不得不使用文档和可用的代码示例来指导它。
  • 它在处理较新的 Tailwind 4 时,容易默认使用旧版本的配置 —— 这是 LLM 处理新版本库时的常见问题。
  • 为 Armeria gRPC 服务器配置 CORS 策略是另一个难点,同样,我必须提供一个正确的示例。
  • 它经常混淆依赖版本,导致编译和运行时报错。
  • 它常常遗漏导入(import),或者完全编造导入,直接导致编译失败。
  • 它无法自行设置合适的 Gradle 项目结构,因此我提供了一组基础文件来引导。

我通过迭代的方式解决了这些问题和其他小问题。每次根据架构概述生成项目的新版本时,我都会修复损坏或不清楚的部分,并完善文档,直到我拥有了一个稳定、可用的设置,能够可靠地生成此类演示应用。

最终成果 

我们最终得到的稳定设置是一组紧凑的文件,您可以使用它们来搭建您自己的带有 React UI 的 Java 桌面应用。如果您想亲自尝试,请从这个 GitHub 目录 下载 docstemplate 目录,并将它们放入一个空项目中。

拥有这些文件后,将architecture-overview.md文档添加到 Cursor 中新项目的上下文中,然后要求 LLM 生成应用。

Prompt 生成的应用

Cursor 中的 prompt 截图。

以下是使用的 prompt:

请阅读并分析我们之前项目中的 architecture-overview.md 文件,并基于它
生成一个新的演示项目。

让我们创建一个简单的桌面应用,功能是文件系统查看器。前端负责展示文件和文件夹结构;后端通过
Java 文件系统 API 访问数据并提供给前端。

当所有项目文件生成完成后,您可以先启动 Vite 开发服务器:

npm run dev

然后在另一个终端中启动应用本体:

./gradlew run

此时您应该会看到一个带有 shadcn/ui (React) 的桌面应用窗口,该窗口允许查看本地文件/文件夹并进行导航:

Prompt 生成的应用

通过 prompt 生成的桌面应用截图。

下面的视频展示了从零开始构建 Java 应用的完整过程:

总结 

您可以用这种方法快速生成类似的项目,并将其应用到自己的场景中。如果在配置过程中需要帮助,或者有任何问题,请随时联系我们:

Spinner

发送中。。。

抱歉,发送中断

请再次尝试,如果问题仍然存在,请联系我们 info@teamdev.com.

阅读并同意条款以继续。

您的个人 JxBrowser 试用密钥和快速入门指南将在几分钟内发送至您的电子邮箱。