怎样运用Java开发桌面软件

admin3年前软件教程89

Java对于服务器,个人电脑和移动设备来说是一项伟大的技术。由于需要java的跨平台的特性,因此java在服务器和移动设备方面的应用是非常成功的。但java在个人电脑应用方面的情况和在服务器及移动设备方面的应用有所不同,但是这很快就会有所改变,至少比你想象得要快。

即使在JavaFX出现之前Java已经在桌面软件领域做出了一些重大的提升,比如Swing中的提升;我们现在也有了很棒的OpenGL;DirectX也有了很大的提升;启动时间也显着提升了。没错,Java在去年做了很多显着而有效的工作。

然而不得不说的是,除此之外其他的仍是一塌糊涂。比如Java sound实际上并不好用,被遗弃的Java3D又如何呢?最近甚至JOGL也被Sun遗弃,包括很久之前的SwingLab;JAI(用作图片处理)多年未真正升级过,看起来也没有在什么地方得到利用,它迫切需要性能上的巨大提升以适应来临的多核GPU时代所有这些应用于桌面软件领域的Java产品不是被遗弃就是成为鸡肋。

而且很关键一点是,尽管我们可以用Java创建出桌面应用,但只要我们想开发真正的富桌面软件应用我们就无法真正使用Java而使用JNI、C/C++和平台依赖的libraries等。

使用Java构建桌面应用更多的是困难和麻烦,比如即便想要在Java应用内创建一个高效的优良的web浏览器都是一件难事。而且没有用Java编写的图片处理应用,没有一个纯粹的Java web浏览器,没有数字音频应用,没有3D建模器,没有矢量图形编辑器,没有先进的光栅编辑器。Java今日在桌面端所到达的高度只能满足那些服务器开发者,因为他们只需要在远程服务时使用电脑桌面上的简单界面。

过去我们一直说这是因为Java太慢,无法在一个慢的平台上开发出如此复杂的应用。但我们这样说是错的。原因有两点:一,Java从来就没有慢过,即便有些部分曾经慢过,但没有人怀疑当它需要被用到服务器端时它会迅速地得到提升,比如JITs,GCs等。这一点也正是Java语言卓越的地方。二,由于Java平台的天然特性,Java应用总是第一个利用市场上新硬件和新操作系统的应用。一旦JVM被配置到了一个新系统中,几乎不需要任何编辑和调试,Java应用就可以在上面全速运行。比如你在32位的操作系统上开发了一个应用,它就可以全速运行在Windows 7 或者Solaris的64位JVM上。所以所谓的Java太慢根本不能成为Java在桌面软件端碌碌无为的借口。

而且,如果你是一个终端用户,你甚至不需要从网站上重新下载应用,这意味着不仅终端用户和开发者得到了速度提升,甚至应用的执行性能的前边也得到了速度提升。今天,JIT在runtime为本地操作优化代码已经做得很棒了,这意味着你可以挖掘出你运行的硬件的全部的能力,这是一个静态编译语言永远也无法竞争过的性能,只是这个性能如果可以运用到桌面端和游戏领域就好了

我们总是说:由于Sun总是一个服务器端公司的原因,Java在桌面端一直没有真正的机会。而Oracle的收购让这种境况看起来不会有什么改变。希望这不要再继续下去,为了Sun、Oracle和Java自身的利益,Oracle内部的知名人士应该提醒公司来让他们知道:如果缺乏了在桌面端的能力和效率,必将影响Java的普及率甚至它在服务器端的占有率。

我们一直以来习惯着Sun主要提供服务器端服务,因而想象着未来更多的处理能力还是出现在服务器端,而客户端不过是连接服务器的简单服务。这种情况已被证明是绝对错误的。因为未来的桌面应用将服务、应用与硬件所有的运算能力相结合,大量的数据和解码、声音、图像、视频被开发者处理,而且用并行编程的方式来实现,既保证了丰富的性能又保证了速度。对开发者来说,未来的服务既需要他们在客户端处理也需要在服务器端处理:执行复杂的搜索、图像、视频以及虚拟3D环境需要服务器端的技术,而远程服务如医学分析、远程教育和远程会议等则需要客户端能力。

Java作为一种网络技术,为了在浏览器中能够运行小应用程序而发布,但是它从开始就有运行独立的桌面软件程序的能力。不幸的是,AWT没有提供足够的桌面端的程序所需的特性。Swing着手于解决这些问题,但是它有不少的bug。今天,Java有构建大型桌面端应用程序的能力并修复了bug。Java独有的优点是“只写一次,到处运行“??在Windows, Linux, Mac和其它操作系统上运行Java代码的能力。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

校园app具备什么功能

想必大家读大学的时候都有这样的感觉,总是一大早的爬起来选课,但是发现选不到,有时候去自习室,图书馆然后发现并没有位置,还有每年评奖学金时要计算那些成绩很麻烦。碰到这些问题,很多学生都会感到很无奈却又没...

email是qq邮箱吗

大家好,我是80知识网,上述问题将由我为大家进行解答。Email一般指电子邮件,是所有邮箱的邮件的统称,不只是有腾讯的QQ邮箱。QQ邮箱是邮箱的一种,QQ邮箱属于Email。电子邮件是一种用电子手段提...

开发新闻媒体APP后怎么通过媒体APP赚钱呢

新闻媒体APP的开发,不仅仅是为了适应互联网时代,避免被时代淘汰。另一方面互联网时代,流量为王,开发新闻媒体APP,也能带来更多的流量。那么开发新闻媒体APP后,怎么盈利呢?1、广告投放不得不说,广告...

天猫超市不发货找谁

天猫超市不发货,用户可以与卖家协商后自己取消订单或让卖家关闭交易,或者等系统超时自动关闭交易。天猫超市是淘宝天猫商城全新打造的本地网上零售超市,仅限开通城市购买实现购买次日送达(已经开通江浙沪皖全境、...

探探可以搜索用户名吗

探探可以搜索用户名,也可以通过手机号搜索,探探不支持昵称搜索。探探是一个基于大数据智能推荐、全新互动模式的社交App。探探根据用户的个人资料、位置、兴趣爱好等信息,计算并推送身边与你匹配的人,帮助用户...

旅游app开发要具有什么功能

旅游APP开发功能:1、预订功能比起网络预订,旅游APP开发最大的优势在于可实现随身随时预订,更符合用户当即决策的思路。途牛旅行网新近数据显示,用户通过手机客户端浏览景点、周边路线等指示,进而直接预订...