能否使用JavaFX开发整个应用程序,并在iOS、Android或Windows Phone 8上运行,而不需要编写特定于平台的代码?
能否使用JavaFX开发整个应用程序,并在iOS、Android或Windows Phone 8上运行,而不需要编写特定于平台的代码?
是的,您可以在iOS、android、桌面和RaspberryPI(尚无Windows8移动版)上运行JavaFX应用程序。
演示视频:
我们成功了!JavaFX8多媒体项目在iPad、Android、Windows和Mac上实现了!
Ensemble8 Javafx8 Android Demo
我的JavaFX样例应用程序在Raspberry Pi上运行
开发资源:
Android:
iOS:
使用RoboVM + e(fx)clipse工具在10分钟内开发JavaFX + iOS应用程序
如果你想要开发严肃的应用程序,这里有更多信息。
杂项:
目前针对JavaFX,Oracle将桌面(Mac、Windows、Linux)放在优先列表中,嵌入式(Raspberry Pi、Beagle Board等)。对于iOS/Android,Oracle已经完成了大部分艰苦的工作,并将其作为OpenJFX的一部分开源了javafxports这些平台,但是iOS/Android上没有来自Oracle的JVM。社区正在通过填补iOS/Android上缺失的JVM(Java虚拟机)来共同完成所有工作,社区在iOS(RoboVM)/ Android(DalvikVM)上运行JavaFX取得了良好的进展。如果你愿意,你也可以通过赞助(成为RoboVM的赞助商)或开始开发应用程序并报告问题来为社区做贡献。
编辑06/23/2014:
Johan Vos创建了一个网站,用于JavaFX移动和平板电脑的端口JavaFX on Mobile and Tablets,请查看更新的信息。
Invariant 的回答 是一个很好的资源,介绍了 JavaFX 在嵌入式和移动设备上的起源和现状,但是自从那时以来,很多事情都发生了变化,那些遇到这个问题的用户并没有得到更新后的信息。
我的大多数观点都与 Invariant 的回答有关,因此我建议您先阅读该回答。
更新
JavaFXPorts 已经被弃用。Gluon Mobile 现在使用 GraalVM 。使用 GraalVM 有多个优点,请参见 Gluon 的博客文章。IDE 插件已更新为使用 Gluon 客户端插件,利用 GraalVM 对 Android/iOS 进行 AOT 编译应用程序。
旧版使用 JavaFXPorts 的回答
先说一些坏消息:
现在说一些好消息:
如果您不是 DIY 类型,我建议您在喜欢的 IDE 上安装 IDE 插件并开始使用。
Oracle JavaFX从Java SE仅支持OS X(macOS),GNU / Linux和Microsoft Windows。在这些平台上,JavaFX应用程序通常在来自Java SE或OpenJDK的JVM上运行。
还有一个名为JavaFXPorts的项目,这是由第三方赞助的开源项目。它旨在将JavaFX 库移植到Android和iOS。
在Android上,此库可以像任何其他Java库一样使用;JVM字节码编译为Dalvik字节码。这就是人们所说的“Android运行Java”的含义。
iOS上的情况有些复杂,因为Java SE和OpenJDK都不支持苹果移动设备。直到最近,唯一明智的选择是使用RoboVM预编译器来为iOS开发Java应用程序。不幸的是,在2015年4月15日,RoboVM项目被关闭。
一个可能的替代方案是英特尔的Multi-OS Engine。直到最近,它是一种专有技术,但在2016年8月11日,它被开源了。虽然可能可以使用JavaFXPorts的JavaFX实现来编译iOS JavaFX应用程序,但目前还没有证据。正如您所看到的,情况正在动态变化,当有新信息可用时,本答案将会更新。
对于Windows Phone来说很简单:没有任何类型的JavaFX支持。