译者注意。最近,我在habr网站上发布了一些
JavaFX课程的俄语翻译。
我的一位读者问我:“
现在有人在使用吗? ”
一周前,我看到
了斯蒂芬·钱
(Stephen Chin)的博客文章,认为它为读者提出的问题提供了很好的答案。
Stephen Chin-Java冠军,也是最近出版的《
使用JavaFX进行现代Java客户端的权威指南》一书的作者之一,谨此发表他的文章的译文。

我们和我们的出版商为我们的新JavaFX书提出了几个候选名称。 我个人最喜欢的是JavaFX-还没死。 我认为它非常准确地描述了我们许多JavaFX长期粉丝的感受,但是我们的发行商选择了我们的可选版本“使用JavaFX的现代Java客户端权威指南”(使用JavaFX的现代Java客户端完整指南)。 尽管这是一个很好的标题,但显然不一样。 您认为哪种封面更好?
许多人认为Java客户端软件已死。 但是,由于有了比以往更多的使用,更多的平台和社区支持,JavaFX仍然可以正常使用。 您可能还考虑将JavaFX用于以下客户端应用程序的三个主要原因如下:
- 跨平台和移动语言
- 无缝原生包装
- 庞大的开发者社区
跨平台和移动语言
JavaFX一直是跨平台框架,可在Mac OS X,Windows和Linux上同样出色地工作。 但是,现在它也在通过JavaFX Ports和Gluon Mobile等技术在Android和iOS上扩展此支持。
Gluon Mobile是一个平台,用于编写,编译和打包JavaFX应用程序,以便在iOS和Android上进行部署。 对于最终用户,您的应用程序的外观和行为完全类似于本机应用程序。
对于Java客户端开发人员来说,这一直是一个梦想,并且由于现代的交叉编译技术,现在很容易做到这一点。 实际上,您已经在电话上安装了JavaFX应用程序,例如由Stephan Janssen创建并用于Devoxx全球技术会议系列的非常流行的应用程序。
无缝的原生包装
一直以来,阻碍Java客户端技术发展的因素之一是应用程序的可靠分发问题。 浏览器从来都不是嵌入式内容友好的地方,这会导致诸如Applet和Web Start之类的发行问题(尽管Karakun修正了第一种方法,正如Hendrik在他的
Java Advent Calendar中所描述的那样)。
打包Java应用程序的一种更可靠的方法是将Java运行时与您的应用程序简单关联,并将其作为本机应用程序分发。 这消除了最终用户安装的Java版本的所有依赖关系,从而极大地简化了对应用程序的测试和验证其可靠运行的过程。 另外,由于Java 9中引入了模块化,因此您可以提供JRE的最小子集以最小化应用程序的大小,包括仅使用的那些组件。
有几种不同的包装选项:
- jpackage-Java 14将再次引入jpackage工具,它提供了一种简便的方法来打包应用程序以及命令行上的所有依赖项。 初步版本已经可用。
- GraalVM是高性能的Java运行时,还为Java应用程序提供了提前编译。 这使您可以以非常快的启动时间将Java应用程序预编译为本地二进制文件。 Gluon提供了有关如何执行此操作的更多信息。
用户的最终结果是一个简单的本机安装程序,无论他们可以安装什么其他Java运行时或应用程序,该安装程序都可以运行。 实际上,他们甚至可能都不知道您正在开发JavaFX客户端应用程序。
庞大的开发者社区
编写JavaFX应用程序的妙处在于,您可以与全世界1000万已经知道如何编写健壮的企业Java代码的开发人员联系。 这意味着有大量的人才可以编写和维护用户界面,其中可能包括您(读者)。
此外,围绕JavaFX的开发人员社区越来越大,其中许多人为我们刚刚发布的上述JavaFX书籍做出了贡献。 以下是您应该在Twitter上关注的一些人,您可以依靠他们来获得有关开发Java客户端的出色建议:
- Johan Vos是Gluon的创始人,也是我杰出的合作者之一。
- 詹姆斯·韦弗(James Weaver)是量子计算专家,也是我的一位杰出同事
- Gail和Paul Anderson-JavaFX作者和专家
- Bruno Borges-微软Java专家
- Anton Epple-德国的JavaFX专家
- 高玮琪-语言专家和JavaFX长期合著者
- Jonathan Giles-JavaFX GUI元素的专家顾问和专家
- JoséPereda是JavaFX移动专家,也是西班牙社区的成员
- Sven Reimers-Java用户组负责人兼JavaFX粉丝
- Eugene Ryzhikov-移动Java专家和Gluon联合创始人
- WilliamAntônioSiqueira是JavaFX社区的长期成员,也是开源社区的成员。
希望您已经启发您创建下一个JavaFX客户端应用程序。 如果您需要帮助,请随时与我和我的合著者或Java社区中许多愿意帮助的JavaFX专家联系。
