当前位置: 首页 > news >正文

用一个 prompt 搭建带 React 界面的 Java 桌面应用

要从零开始搭建一个 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 生成应用。

Cursor 中的 prompt 截图。

以下是使用的 prompt:

请阅读并分析我们之前项目中的 architecture-overview.md 文件,并基于它
生成一个新的演示项目。让我们创建一个简单的桌面应用,功能是文件系统查看器。前端负责展示文件和文件夹结构;后端通过
Java 文件系统 API 访问数据并提供给前端。

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

npm run dev

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

./gradlew run

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

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

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

从零开始构建 Java 应用的完整过程

总结

您可以用这种方法快速生成类似的项目,并将其应用到自己的场景中。如果在配置过程中遇到困难,可以参考平台提供的帮助文档或支持页面。

http://www.dtcms.com/a/482735.html

相关文章:

  • 宁波建网站价格wordpress注明网站
  • wordpress添加网站地图黑龙江新闻头条最新消息
  • 机械臂装配自动化推动紧固件设计革新
  • JSAR 入门教程:从零开始开发空间天气小摆件
  • 【Pytorch】什么是梯度
  • 核间通信机制
  • 吕口*云蛇激光*VS*薄利魔刀*武打算法的方案
  • CSP-S模拟赛五总结(实际难度远低于提高组)
  • 网站建设服务器的配置wordpress 输出sql
  • 邵阳建设网站公司app在线生成平台 免费
  • 如何在第三方网站做推广什么关键词可以搜到那种
  • 深度解析 PostgreSQL 中的 ctid、xmin、xmax:从原理到实战
  • 2-sat
  • KPI、OKR 和 GS 的区别
  • 坂田网站建设费用明细wordpress 最近登录地址
  • 网站开发技术微信公众平台如何绑定网站
  • electron+react+esbuild入门项目
  • iOS 应用加固与苹果软件混淆指南,如何防止 IPA 被反编译与二次打包?
  • jsp电商网站怎么做网络营销是什么部门
  • 网站优化体验报告百度网盟推广步骤
  • 物联网系统三层架构解析
  • 京东联手广汽、宁德时代造车!
  • PEFT适配器加载
  • React Hooks 核心规则自定义 Hooks
  • 江门网站制作 华企立方洛宁县东宋乡城乡建设局网站
  • 河南网站建设哪家有三品合一网站建设案例
  • 位运算专题总结:从变量初始化陷阱到理解异或分组
  • Linux学习笔记(八)--环境变量与进程地址空间
  • 【动态规划】题目中的「0-1 背包」和「完全背包」的问题
  • Streamlit 中文全面教程:从入门到精通