可以在iOS,Android或Windows Phone 8上运行JavaFX应用程序吗?

是否可以使用JavaFX开发整个应用程序并在iOS,Android或Windows Phone 8上运行它,而无需编写特定于平台的代码?

背景

Invariant的答案是一切的开始,JavaFX在embedded式和移动设备上的状态在2014年初是一个很好的资源。但是,自那以后, 很多人都发生了变化,而在这个线程上绊倒的用户没有得到更新的信息。

我的大部分观点都与Invariant的答案有关,所以我build议先通过它。

移动/embedded式JavaFX的现状

先有一些坏消息:

  • RoboVM已经死了
  • Oracle杀死了embedded式设备上的JavaFX

现在有一个好消息:

  • JavaFX仍然在Android,iOS和大多数embedded式设备上运行
  • 适用于Android,iOS和embedded式设备的JavaFXPorts SDK可以从这里下载
  • JavaFXPorts项目依然蓬勃发展,在移动设备上运行JavaFX比以往任何时候都容易,这要感谢在这些SDK之上构build的IDE插件 ,并让您在几分钟内启动,而无需安装任何SDK
  • JavaFX 3D现在在移动设备上受支持
  • GluonVM取代RoboVM,为移动开发人员提供Java 9支持。 是的,你听对了。
  • 移动项目已由Oracle推出,以支持所有主要移动平台上的JDK。 它也应该支持JavaFX;)

如何开始

如果你不是DIY的,我会build议在你最喜欢的IDE上安装IDE插件并开始。

大多数关于如何入门的文档可以在这里find,一些示例可以在这里find。

是的,你可以在iOS,Android,桌面,RaspberryPI(没有Windows8手机)上运行JavaFX应用程序。

行动中的工作:

我们做到了! 在iPad,Android,Windows和Mac上的JavaFX8多媒体项目!

JavaFX无处不在

Ensemble8 Javafx8 Android演示

我的示例JavaFX应用程序在Raspberry Pi上运行

我在Android上运行的示例应用程序

在iOS和Android上的JavaFX

开发资源:

Android:

在Android上构build和部署JavaFX应用程序

iOS:

NetBeans对于JavaFX for iOS的支持已经结束!

在10分钟内使用RoboVM + e(fx)剪辑工具开发JavaFX + iOS应用程序

如果你打算开发严肃的应用程序这里是一些更多的信息

杂项:

目前对于JavaFX来说,Oracle优先级列表是Desktop(Mac,windows,linux) 和Embedded(树莓派,beagle板等) 。对于iOS / android oracle,这些平台的大部分硬件和运行的javafxports都是OpenJFX的一部分。是不是从ios / android的甲骨文的JVM。社区通过填补缺失(JVM)为ios / android,社区在ios( RoboVM) / android( DalvikVM )上运行JavaFX进展良好。 如果您愿意,还可以通过赞助( 成为RoboVM赞助商 )或者开始开发应用程序和报告问题来为社区做出贡献。

编辑06/23/2014:

Johan Vos 在手机和平​​板电脑上为javafx端口JavaFX创build了一个网站,查看更新信息..

桌面:一stream的支持

Java SE的 Oracle JavaFX仅支持OS X(macOS),GNU / Linux和Microsoft Windows 。 在这些平台上,JavaFX应用程序通常在Java SE或OpenJDK的JVM上运行。

Android:应该工作

还有一个JavaFXPorts项目,这是一个由第三方赞助的开源项目。 它旨在将JavaFX 移植到Android和iOS。

在Android上,这个库可以像任何其他Java库一样使用; JVM字节码被编译成Dalvik字节码 。 这就是人们所说的“Android运行Java”的意思。

iOS:状态不清楚

在iOS上,情况稍微复杂一些,因为Java SE和OpenJDK都不支持Apple移动设备。 直到最近,唯一明智的select是使用RoboVM超前的Java编译器for iOS。 不幸的是,在2015年4月15日, RoboVM项目被closures 。

一个可能的select是英特尔的多操作系统引擎 。 直到最近,这是一个专有技术,但在2016年8月11日它是开源的 。 尽pipe可以使用JavaFXPorts的JavaFX实现来编译iOS JavaFX应用程序,但目前还没有证据。 正如你所看到的,情况正在dynamic变化,当新的信息可用时,这个答案将有希望更新。

Windows Phone:不支持

使用Windows Phone很简单:没有任何JavaFX支持。

可能。 你也可以得到商业运动。

JavaFXPorts是由Gluon维护的开源项目的名称,它开发了Java和JavaFX在移动和embedded式硬件上运行所需的代码。 这个项目的目标是尽可能多地回馈OpenJFX项目,在不可能的时候,尽可能地保持为实现JavaFXPorts目标所需的最less的改变。 Gluon使用JavaFXPorts源代码并将其编译为可以部署到iOS,Android和embedded式硬件的二进制文件。 JavaFXPorts构build可在本网站免费提供给所有开发人员。

http://gluonhq.com/labs/javafxports/

  1. 是的,你可以在iOS和Android上运行它(Win8不支持!
  2. 没有部署作为一个Web应用程序不起作用