怎样运用Java开发桌面软件

admin3年前软件教程61

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代码的能力。

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

相关文章

京东sku是什么意思啊

京东sku是京东自营商品的意思,sku是对于大型连锁超市物流管理的一个必要的方法,每种产品均对应有唯一的sku号。京东是一家总部设在北京的中国电子商务公司。它是中国两大交易量和收入的B2C在线零售商之...

秒速寻可以查微信好友位置吗

秒速寻可以查微信好友位置,但是需要对方同意加好友后,对方发送定位信息才可以查微信好友位置。微信(WeChat)是腾讯公司于2011年1月21日推出的一款面向智能终端的即时通讯软件。微信为用户提供聊天、...

天猫积分不使用会清零吗

以天猫9.11.0为例,天猫积分不使用是会清零的。天猫积分可以在天猫购物时当现金使用,一个积分抵一分钱,可以享受有积分返还的商品的积分奖励。天猫(英语:Tmall,亦称天猫商城),原名淘宝商城,是一个...

app开发怎么选择供应商

app开发选择供应商的方法:1、从开发公司的规模上来看一家优秀的app软件开发公司必须有自己的独立策划团队,这样才会提高效率的同时节省成本。2、app软件开发公司必须有自己的服务理念APP应用公司是为...

哔哩哔哩电视大会员与大会员的区别是什么

大家好,我是80知识网,上述问题将由我为大家进行解答。以哔哩哔哩6.9.1版本为例,电视大会员为哔哩哔哩TV客户端“云视听小电视”的专有会员特权,大会员无法在TV端享受会员特权,除此之外,两者在其他会...

拼多多店铺tab是什么意思

拼多多店铺tab是商家私域视频导购内容的聚合地。商家可在此聚合所有的店铺视频,如商家自己生产的知识类或体验类视频,或采买的达人视频内容,或是精心挑选过的买家秀视频,甚至可以将商品视频根据话题场景聚合在...