可以在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可在本网站免费提供给所有开发人员。
- 是的,你可以在iOS和Android上运行它(Win8不支持!
- 没有部署作为一个Web应用程序不起作用
- Iterator和Listiterator之间的区别?
- Spring安全性的SecurityContextHolder:会话或请求绑定?
- Android Java; 我怎样才能parsing从资产文件夹本地JSON文件到一个ListView
- 我怎样才能通过引用正确传递一个Integer类?
- 有没有办法转储堆栈跟踪,而不会在java中引发exception?
- List <Dog>是List <Animal>的一个子类吗? 为什么不是Java的generics隐式多态?
- 何时使用Class.isInstance()以及何时使用instanceof运算符?
- 更改Cookie JSESSIONID名称
- File.separator与FileSystem.getSeparator()与System.getProperty(“file.separator”)?