【问题标题】:Java Desktop application framework [closed]Java桌面应用程序框架[关闭]
【发布时间】:2010-09-08 05:41:58
【问题描述】:
我正在设计和构建一个桌面应用程序。我正在考虑使用 eclipse 或 netbeans 作为这个应用程序的基础。但是,我从来没有在这两个平台上构建过。我个人倾向于使用netbeans,因为它看起来像那个平台是一个更容易学习的曲线。但是,我想问那些实际在这些平台上构建的人,在此之前哪个更容易使用?
我个人对easyer的定义如下:
易于上手
一致且符合逻辑的 API
良好的文档
易于构建和部署
非常感谢,
乔什
【问题讨论】:
标签:
java
eclipse
netbeans
desktop
platform
【解决方案2】:
-
易于使用:我有在 Eclipse 上开发的经验,我不得不说理解它的开发模型并不容易。当然,对于基本的东西,它有一些使事情变得更容易的向导,但对于更复杂的东西,它就很难了。我不了解 Netbeans,但我听说它更容易。
-
一致的 API:我认为 Eclipse 在这方面胜出。它在 OSGI 上运行(虽然带来了一些复杂性),并且几乎所有东西都有插件扩展。它似乎是插件开发的首选平台,因此我认为它是可靠的。
-
文档:到目前为止,Eclipse 胜出。 eclipse 站点的帮助非常好,邮件列表中有很多用户问题。
【解决方案3】:
我使用 Eclipse 作为框架基础,但它主要是使用 SWT——我们并没有真正使用太多的 RCP。
这真的取决于你在写什么,但根据我从使用 Eclipse 中学到的东西,它真的只适合编写一个涉及你使用各种视图编辑数据的应用程序(就像编辑代码一样)。
任何更随机的事情都可能导致您开始将框架推向非设计的方向并导致严重失败。
【解决方案4】:
您将使用 Swing 来开发您的应用程序,因为任何其他窗口框架只有在您具有先前的知识或适当的背景时才有用。
您可以依靠http://www.javadocking.com/ 来简化您的申请。
如果您的应用程序要求高度集中在用户界面上,也许您可以看看其他方向,例如 Adobe Air。
【解决方案7】:
我有一个类似的任务,我也在考虑不同的框架。我对 Eclipse(大约 4 个月的 RCP 开发)和现在的 Netbeans(玩了几天)有一些经验。恕我直言,这些框架太复杂了。您最终只是调试 Eclipse 特定的插件加载器,试图找出为什么会得到 ClassNotFoundException 或 NullPointer。 NetBeans 也有同样的情况:只要您按照教程进行操作,就可以在某种程度上读取 xml 配置文件并从中创建 UI,这很酷。当然,你不能使用其他 IDE 开发和基于 Eclipse 的 RCP,NB 也非常嫉妒它的使用(除非你像我一样做一些 hack)。
我缺乏的是一种清晰的方法来调试我的线程从主要到执行的操作。相反,我总是被告知我必须做什么来避免异常。所以每次我试图拉出新的东西时,我都必须保持手指交叉。它从来没有第一次成功。
现在我考虑了我需要的功能,并寻找针对特定功能的小型项目,例如插件管理。而且有很多。只需编译您需要的功能列表,然后通过将较小的框架集成到您的项目中来开始添加它们。这也是有道理的,因为您的项目最终应该消耗更少的 RAM。
【解决方案9】:
我对两者都做了一些工作,但只针对相对简单的应用程序。两者似乎具有大致相同的能力。我个人更喜欢 Netbeans 平台,因为它对我来说更有意义。
您还应该考虑 JSR-296,即 Swing 应用程序框架。它为构建 Swing 应用程序、管理应用程序资源、状态等提供了一个基本框架,但没有 Netbeans 和 Eclipse 那么多的“包袱”。 Netbeans IDE 有许多用于在 SAF 上构建应用程序的工具。请参阅https://appframework.dev.java.net/ 了解更多信息。
如果不了解您的应用程序的更多信息,就很难指出这两个平台的适当优势/劣势。
【解决方案10】:
如果您真的想避免跨平台维护,请使用 Swing。这将为您购买所有平台。 RCP 需要每个平台的本地库。
我们对 Swing 有过很好的体验。
【解决方案11】:
当您确实需要在其上构建平台时,我会使用 Eclipse RCP,而不仅仅是像 swing 或 swt 这样的“小部件”。 RCP 坚如磐石、始终如一、模块化且非常灵活。一旦你掌握了它,你将获得巨大的好处。作为一个平台,它为您提供最常用的东西——偏好、配置、自动更新、布局管理、品牌和类似的东西。您构建的是产品,而不是应用程序。但一开始的学习曲线相当陡峭。
另一方面,Swing 不是一个平台,您将通过编写我上面提到的自己的东西来重新发明轮子。但是,是的,swing 学习和上手的速度更快。我认为它更适合寿命较短的小型应用。
【解决方案12】:
【讨论】:
-
请注意 link-only answers 是不鼓励的,所以答案应该是寻找解决方案的终点(与另一个中途停留的参考相比,随着时间的推移往往会变得陈旧)。请考虑在此处添加独立的概要,并保留链接作为参考。