如果我从我所读的内容中得到它,JavaFX 2.0 允许您使用 Java 编写所有逻辑并使用 FXML 设计屏幕。然后,Web 应用程序作为小程序在客户端运行。
但:
- 所有浏览器和移动设备都能够运行小程序吗?
- 它是否有效(即,良好的用户体验)?
换句话说,JavaFx 2.0 Web 应用程序在客户端的可移植性如何?有人有经验可以分享吗?
如果我从我所读的内容中得到它,JavaFX 2.0 允许您使用 Java 编写所有逻辑并使用 FXML 设计屏幕。然后,Web 应用程序作为小程序在客户端运行。
但:
换句话说,JavaFx 2.0 Web 应用程序在客户端的可移植性如何?有人有经验可以分享吗?
JavaFX 生成 Java 小程序。所以我在这里所说的适用于 Java 小程序。
大多数台式机浏览器都与 Java 兼容:IE、Firefox、Chrome、Safari、Windows 上的 Opera、Mac、Linux 和 Solaris。对于智能手机来说,这似乎要复杂得多。我认为这对 iOS、Blackberry 和 Android 来说肯定是绝对的拒绝。对于 Windows Phone,这可能是可能的,但对于主流用户来说可能太复杂了。
高效是一个广义的概念。它有优点(启动后的性能、对丰富的 Java 生态系统的开放性)和缺点(启动时间、大小、所有小程序在同一个 JVM 实例中运行)。Java 7 改进了体验,您可以在此处阅读:http ://www.oracle.com/technetwork/articles/java/javaclient-484666.html
从如何在 Android 上运行小程序?,似乎android无法运行小程序。
因此,JavaFX 2.0 似乎在大多数浏览器上都可以,但不适用于智能手机等便携式设备。
JavaFX 应用程序可以以多种方式打包。它们可以在网页中作为小程序运行,可以通过 java web start 启动,甚至可以作为 os 原生应用程序分发。所以是的,JavaFX 是可移植的。该线程中的其他人已经讨论过 JavaFX 小程序,这就是您的问题所在。所以我不会详细说明这一点。但是,我觉得您可能错过了这样一个事实,即 JavaFX 客户端不仅必须作为小程序在浏览器中分发,以便与后端通信。事实上,我什至不会考虑将其作为替代方案,根据我自己过去的小程序经验以及它们在网页上下文中的丑陋程度来判断。
作为小程序的替代方案,您可以编写一个 JavaFX 独立应用程序,该应用程序使用基于 SOAP 或 REST 的 Web 服务与后端通信。互联网上到处都是这些例子。此外,您可以通过 Java Web Start 启动应用程序并进行依赖注入,以获取服务器上资源的代理对象。博客海报和 Oracle 文章没有提到这最后一部分。事实上,我还没有找到一种标准化的方法来做到这一点。但是,如果您将常规 Java SE 应用程序打包到 EAR 包中,您可以在该应用程序的Main
类中注入资源,并让线程启动新的 JavaFX 应用程序并转发这些资源。这是我编写的教程,带您完成整个过程:
http://blog.martinandersson.com/the-enterprise-side-of-javafx-the-missing-part/