为什么有人选择Java来创建桌面应用程序(GUI更具体)?我问的原因是有明显和更好的选择。对于Windows,有C#和.NET框架,对于mac,有Objective-C和Cocoa框架,对于跨平台兼容性,有Qt和C ++(也是单声道)。
有人放弃上述选择并使用Java的原因是什么?除了有人“只知道Java”之外,我对真正的原因,好处以及Java何时成为更好的解决方案感兴趣。
答案 0 :(得分:6)
便携性是一个原因。您可以用Java编写代码,并在任何带有JRE的平台上运行它。
这意味着它将在Linux,AIX,HPUX,Solaris,OS X,Windows,OS / 400(或其他现在所称的)甚至z / OS下运行。你提到的其他解决方案都没有那么普及。
Mono尽管如此,在绝大多数情况下,C#几乎都用于Windows。目标C虽然在别处可用,但主要用于Apple宇宙。
话虽如此,由于我的大部分工作都是基于Windows的,所以我更倾向于使用C#,因为它目前是一种更有市场的技能,它可以完成Java为我所做的一切。
答案 1 :(得分:3)
Java是使用GUI实现桌面应用程序的最便携/平台独立方式。
对于许多应用程序,可能更便携的解决方案是在Web浏览器中实现GUI。当然,这可以避免在桌面上安装应用程序的问题。但是,您必须与之抗衡:
答案 2 :(得分:3)
根据具体要求列表,您列出的选项仅“更好”。一般来说,主要的是我可以使用语言X,因为我只针对一个平台。虽然C#可能对Windows更好,但如果您需要跨多个平台运行代码,它就不如Java好。 Java是编写跨平台GUI的唯一主流方式,可能的例外是Mono,使您免于内存管理的要求。 Java也是创建可在多个平台上运行的二进制文件的唯一选项。虽然QT允许您为多个平台创建GUI,但您必须为每个平台进行自定义构建。虽然GUI是许多应用程序的重要组成部分,但它通常不是唯一的部分。在您列出的所有语言中,Java拥有最多的第三方库。这意味着您可以用一种语言编写用户界面和后端代码,以便在多个平台上运行。如果您希望将来将应用程序从桌面GUI移动到Web应用程序,那么使用经过精心设计的Java解决方案,然后使用C ++编写的QT应用程序,将更容易实现。
答案 3 :(得分:1)
如果你想要可移植性,你应该在java中编码。 Java在每个重要的桌面操作系统上运行。
如果你的应用程序是一个仅限Windows的应用程序,那么在我看来,C#是一个更好的候选者。 gui编辑器可以轻松使用,而不是像Swing那样从头开始编写。Objective-C是Apple的一个东西,与Qt / C ++一起,它在理论上是可移植的,但你仍然需要通过段错误和潜在的内存泄漏来解决问题。 Java不需要更改源代码就可以在Linux或Mac上运行,即使您只在Windows上编码。
Javas最引人注目的功能是您可以使用的工具,更不用说几乎所有的库。您可以自由选择工具。如果你喜欢Qt,你也可以找到它的java绑定,我记得它叫做Qt / Jambi。
或者,您可以使用C ++ / Mono / Objective-C对后端进行编码,并在java中完成前端。这样至少你的gui很容易移植。
答案 4 :(得分:1)
我喜欢Java,因为我可以创建一个桌面应用程序,并且使用3行代码,我可以将它作为applet部署到Web上。因此,操作系统之间的可移植性非常好,而且还可以轻松地将其部署到Web上。
答案 5 :(得分:-1)
便携性有点超卖。这很好,但不太可能是你的应用程序的杀手级功能。
为什么选择Java?因为Eclipse是有史以来最伟大的应用程序之一。而且,由于Eclipse也是一个平台,您可以利用它来构建自己的应用程序。