gpt4 book ai didi

java - 将现有的 Web 应用程序转换为桌面应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:58 25 4
gpt4 key购买 nike

我在这里看到了一些关于这个主题的其他类似问题,但它们不是很有帮助,所以我提出了这个问题。

将大小合理、简单的 Web 应用程序转换为面向 pc 和 mac 的基于 Java 桌面的客户端的最快方法是什么?不幸的是,由于各种原因,我无法在此处分享有关该应用程序的大量详细信息。尽管应用程序中最复杂的 UI 是一个包含多级线程讨论的页面(请参阅 here 以了解我正在谈论的内容的说明性示例。)当前的网络应用程序基于 python,因此我无法重复使用服务器端代码中的任何内容(不要认为这是一个问题)

我从未做过任何 swing 或 awt 或任何其他基于 Java 的胖客户端 GUI 工作。我的想法或多或少是由基于网络的应用程序定义的。我能够使用 Java 或 Python 进行端到端 Web 应用程序开发(包括使用 HTML、CSS 和 JS 的后端和体面的 UI)。对于您的答案,请仅关注 Java 解决方案。

所以这是我的问题我应该使用的最佳框架或工具是什么?作为我研究的一部分,我在网络上找到了以下一些工具。

  1. Awt - 看起来这不是一个好的选择。
  2. 我认为 Swing 与常规 Java SDK/JRE 捆绑在一起。 - 这可能是我最好的赌注。
  3. SWT这似乎以某种方式赞美了 Swing。
  4. Griffon 基于此处的一篇文章。这个框架使用 Groovy(我对 Groovy 毫 headless 绪,顺便说一句)Adobe Air flex。任何开源框架?

我还需要注意哪些其他问题?我希望您发表评论的一些内容是:

  1. 它需要部署在客户端这一事实如何使事情复杂化?由于我们使用的是 Java,我相信这不是问题。我知道基于 Web 的应用程序和桌面应用程序之间通常的权衡取舍(例如,易于部署和升级等)
  2. 创建一键式安装程序并将应用程序和所需环境捆绑在一起有多容易 - 例如。 JRE 等?
  3. 该产品需要在 Mac 和 Windows 上运行。这是否会使事情复杂化(同样,因为它是 Java,我假设没有陷阱,但如果有任何问题,我希望得到预先警告)
  4. 有哪些框架或技术可以作为技能集出现在简历中?

我的截止日期最多为 2 个月 - 考虑到我需要学习所有这些技术,这对于一个相当简单的网络应用程序来说是否足够?我只是想在这里了解一下 - 我知道很可能无法给出准确的答案 - 假设我足够聪明并且可以足够快地掌握任何不熟悉的技术堆栈。

谢谢!

最佳答案

图形用户界面工具包

考虑到“Mac 和 Windows”,我会说我的推荐是“Swing”(可能是 SwingX1)。

  1. 我同意您对 AWT 的评价。它不支持开箱即用的任何组件中的格式化文本。它还缺少树、表格(和其他组件)和最近有使用它经验的人。但请注意,它也像 Swing 一样“与常规 Java SDK/JRE 捆绑在一起”,只是它比 Swing 通常更旧且启用更少。
  2. 如果有任何东西可以补充 Swing,那就是 SwingX。 SwingX 建立在 Swing 之上,并提供了 J2SE 中“开箱即用”的高级控件。
  3. Swing 和 SWT 互不兼容 - 使用其中之一。
  4. 我没有使用 Griffon 的经验。

Swing 是列出的选项中最常用的,因此为了获得帮助(忽略决策中其他潜在的重要因素),这将是一个不错的选择。

注意 1) 如果 SwingX 有任何可以轻松呈现线程对话的 groovy 组件,请添加它们,但我怀疑 JTextPane 就足够了。


部署

就部署而言,这比看起来要棘手一些。许多台式计算机并未将 Java 作为标准配置。那些已经拥有它的人可能拥有旧版本。

  1. 确保 JRE 具有正确的最低版本以运行该应用程序。可用,请使用 deployJava.js(在下面的 JWS 页面中提到,带有链接)。
  2. 要为用户提供“一键式”启动体验,请查看 Java Web Start .

跨平台陷阱

不幸的是,虽然 Java 是 x-plat,但程序员可以做很多事情。例如

  • 不考虑平台默认值:
    • 文件编码(file.encoding2)
    • 换行符(line.separator2)
    • 文件分隔符(file.separator2)
  • 编写固定大小(“绝对布局”)应用程序。将显示为不同大小的应用程序。在其他操作系统上。
  • ...

注意 2. 即显示用于每个的属性。


时间表

显然我不能代表你说话,但我可以告诉你,我没有机会在两个月内从“哪种技术”变成“可部署的应用程序”。

希望你比我有能力! ;)

关于java - 将现有的 Web 应用程序转换为桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com