Java FX
桌面软件开发一直以来是 Java 程序员不敢轻易涉足的地方,原因有三:丑、慢、难。而自从 Java 8.0 将 JavaFX 包含进来之后,情况有所改善。JavaFX 是用来代替之前的 Java GUI 框架 AWT 和 Swing 的,界面风格更现代化,运行效率更高,接口封装更合理。
打包
还有一个人们关心的方面就是软件如何打包。好在 Java 不需要单独安装,就可以随着软件一起打包直接运行。Oracle 在 JVM 的平台兼容性上花了很大功夫,Windows 下只需要在 32 位和 64 位两个版本之间选择。如果你的应用运行内存可能超过 1GB,就应该选择 64 位版本。
JVM 打入 zip 压缩包后的大小在 70~80MB 左右,放在 10 年前这还算是很大的,而如今算是中等大小吧,在 8M 带宽下一分多钟就能下载完。Java 9.0 还会有定制化 JVM 的功能,能进一步缩小 JVM 尺寸。当然如果你不嫌麻烦的话,现有的一些工具也可以做到。
还有一个问题就是如何双击运行。首先可以提供一个bat 文件,但是 bat 文件没有自定义图标,我们可以创建一个指向它的快捷方式,快捷方式可以用自定义图标。但对于解压运行的方式,因为解压位置不确定,而快捷方式路径是绝对的,所以这种方式行不通。还有一个办法就是编一个通用的 exe 可执行文件,它的唯一作用就是运行 javaw 命令,命令参数可以放在一个随带的配置文件里。这是如今很多 Java 软件的做法。
我的经验
好了,上面罗嗦这么多,主要是针对大家对 Java 桌面开发的后顾之忧做一些解释。但说到底 Java 桌面开发本身究竟如何?我已经用 JavaFX 做了将近两年的开发,我觉得 JavaFX 已经可以满足桌面开发的基本需要。
我到底做过什么呢?下面是几个软件的截图,都是用 JavaFX 原生界面做的,我没太多时间花在界面美化上,一是用户没这个需求,二是我一个程序员也不会做设计,三是原生界面已经足够美观了。相对于那个杀千刀的垃圾 Motif。
别人做的是什么样的呢
别人做的是这样的(参考这里):
看到没,其实也不是我水平差,只是没有设计师给我做图标而已!
上面的图片来自Quora。这么牛逼的界面怎么做到的,其实细节我也不清楚了,但总之可以做到就是了。