从Sun公司发布的两个Java SE更新版本(5.0 Tiger、6.0 Mastang)、推出3D桌面软件Project Looking Glass、以及它与Google联合计划推出可替代微软Office软件的新桌面办公软件OpenOffice等频频动作,我们容易看出Sun的壮志雄心,它已经主动发动起桌面系统的第二次战役——Java桌面系统。

就其Java SE 6.0 版本而言,它就引入了许多新特性。尤其是在UI性能和本机操作系统桌面集成方面做了很大的改进,以期把Java应用程序与桌面无缝地集成到一起,大大提高了Java在桌面开发领域的影响力;同时也在提高开发者的生产效率和Java应用程序管理方面(进一步加强了内存漏洞分析与探测的能力)作出了努力。就桌面应用版块而言,该版本增加了对Splash屏幕的直接支持(在以前的版本中,需要用户编程自己去实现它,本次程序的设计就是通过自己写代码来实现让应用程序在启动过程中显示Splash屏幕的);对系统托盘支持;还新增了一组新的桌面API,这组API支持Java应用程序使用一个特定的统一资源标识符(URI)启动操作系统的缺省的浏览器,启动操作系统缺省的电子邮件客户端,以及启动应用程序以打开、编辑或打印与该应用程序相关联的文件等。

我们看到,Sun在Java桌面应用上投入巨大精力,一方面努力简化用户编程接口,一方面想方设法增强功能,提高运行速度。从长远看,Java在桌面应用领域是很有实力和前景的:

1. Java“Write once,run anywhere!”的卓越思想。Java有着平台无关性,这是Java天生的优势所在。对于三大主流操作平台Windows、Linux和Mac,Windows占领着桌面操作系统90%的市场,其拥有巨大的开发和用户群体,但是它在稳定性和安全性方面不及Linux;但Linux的可操作性远远不及windows,然而Linux是开源的软件,价格低廉,是很多企业的首选;Mac界面非常友好,有比较忠诚的用户群体,尽管其硬件和软件可选余地十分有限。于是就造就了今天三大操作平台共存的局面,而这种共存产生了多样性的需求。这正是Java的拿手好戏,Java具备把现有的应用从一个操作系统移植到另一个操作系统而不用什么改动的能力,这使得Java在桌面有举足轻重的地位。

2. 简单的就是最好的。Java从诞生之初就明白这个道理。Java除去了微软C系列高级程序设计语言晦涩难懂的和容易出错的部分,如指针、多重继承、goto语句、预处理等,新增了内存自动管理、异常等机制,使得Java的句法更清晰,规模更小,更容易学习,同时其编程环境也更加友好。所以,Java很快就被人们所接受,并广泛应用于多个领域。桌面应用方面,Java 7.0中将整合Swing应用框架(Swing Application Framework) ,使得程序员的工作更加简易。

3.桌面应用与网络技术融合。在人人需要网络、网络无处不在的时代,连操作系统都开始向网络方面来整合,如最近微软、google、百度和搜狐等相继在其网络搜索引擎中整合桌面搜索功能,使网络资源搜索和本地资源搜索融为一体,而普通的桌面应用程序很多都是和网路联系十分紧密的。尽管Java过去最成功的地方在于网络,然而桌面应用技术的成熟为Java在桌面应用领域的成长就像打了一支催长剂,使它在桌面应用领域迅速成长和壮大起来。Java拥有将二者融合起来的技术优势。

4.Java的开源策略使得Java在GUI组件方面远超对手。Sun其实很好地理解了互联网时代的长尾理论,它充分地利用了世界各地的Java桌面应用程序爱好者,让他们也扮演生产者的角色——他们每时每刻都在充实着Java的图形组件库,同时还有不少的GUI框架诞生。

其实,Java从一开始就拥有了运行独立的桌面应用程序的能力,只是最初的AWT没有提供足够的桌面端的程序所需的特性而已。随着Swing、SWT、JFace等Java图形界面工具的出现和成长,AWT所面临的问题得到了很好的解决。到目前为止,Java已经具备了构建大型桌面端应用程序的能力。比较出名的产品有JGoodies、JIDE、TWaver、Eclipse等。