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

我在这里看到了关于这个主题的一些其他类似问题,但是他们没有太大帮助所以我提出了这个问题.

将合理大小的简单Web应用程序转换为基于Java桌面的PC和Mac客户端的最快方法是什么?不幸的是,由于各种原因,我无法在这里分享关于应用程序的大量细节.应用程序中最复杂的UI虽然是一个包含多级线程讨论的页面(请参阅here以获取我正在讨论的内容的说明性示例.)当前的Web应用程序基于python,因此我无法使用任何来自服务器端代码(不要认为这是一个问题)

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

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

> Awt – 看起来不是一个好选择.
>我认为Swing与常规Java SDK / JRE捆绑在一起. – 这可能是我最好的
打赌.
> SWT这似乎以某种方式赞美Swing.
>格里芬基于这里的一篇文章.这个框架使用Groovy(我
不知道Groovy,顺便说一句Adobe Air flex.任何开源
构架?

我需要记住的其他一些问题是什么?我希望您发表评论的一些内容是:

>它需要在客户端上部署的事实如何使事情复杂化?由于我们使用Java,我认为这是一个非问题.我知道基于Web的应用程序和桌面应用程序之间通常的权衡(例如易于部署和升级等)
>创建一键安装程序并捆绑应用程序和所需的环境是多么容易 – 例如. JRE等?
>该产品需要在Mac和Windows上运行.这是否会以任何方式使事情复杂化(再次,因为它是Java我假设没有陷阱但是如果有的话可能会被预先警告)
>作为一种技能,简历上可能有什么好处的框架或技术?

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

谢谢!

最佳答案
GUI工具包

考虑到“Mac和Windows”,我会说我的建议是“Swing”(也许是SwingX1).

>我同意你对AWT的评估.它不支持开箱即用的任何组件中的格式化文本.它还缺少树木,桌子(和其他组件)和最近有使用它的人.但请注意,它也像Swing一样“与常规Java SDK / JRE捆绑在一起”,它只是比Swing更老,更少启用.
>如果有任何补充Swing,它将是SwingX. SwingX构建于Swing之上,提供J2SE中“开箱即用”的高级控件.
> Swing和SWT互不兼容 – 使用其中一个.
>我没有格里芬的经验.

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

注1)添加SwingX,如果它们有任何容易出现线程对话的groovy组件,但我怀疑JTextPane就足够了.

部署

就部署而言,这比看起来更棘手.许多台式计算机没有标配Java.那些已经有它的人可能有旧版本.

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

跨平台的问题

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

>不考虑平台默认值:

>文件编码(file.encoding2)
>换行符(line.separator2)
>文件分隔符(file.separator2)

>编码固定大小(‘绝对布局’)应用程序.这将显示为不同大小的应用程序.在其他OS上.
> ……

注2.这表示要为每个使用的属性.

时间表

显然我不能代表你,但我可以告诉你,我将无法在两个月内从“哪种技术”转向“可部署的应用程序”.

希望你比我更有能力! 😉

转载注明原文:java – 将现有Web应用程序转换为桌面应用程序 - 代码日志