JavaFX是否适用于每个Java VM?

时间:2016-03-27 09:34:51

标签: javafx-8

我遵循了几个地方提到的“JavaFX将取代Swing”建议(SOWikipediaOracle),但这似乎是一个白色谎言。当我使用IBM V9(build 2.8,JRE 1.8.0)运行JavaFX应用程序时,我得到:

java.lang.ClassNotFoundException: javafx.application.Application

我找不到任何资源来解释JavaFX是否是跨VM技术,或者这只是另一个供应商锁定“功能”。

JavaFX在哪里可用?如果它在某些VM中不可用,我可以安装它还是将它与我​​的应用程序捆绑在一起?

3 个答案:

答案 0 :(得分:3)

JavaFX不适用于每个Java VM。例如,Oracle Solaris Java发行版不包含JavaFX支持。

JavaFX可用于许多Java VM。 JavaFX运行时可用于(至少)以下平台:

  • OS X,Windows,Linux,iOS,Android和各种嵌入式架构。

JavaFX下载和源位置:

  • 某些JavaFX运行时(例如OS X,Windows和Linux)的二进制文件是基于Oracle JDK源的provided by Oracle
  • 其他一些运行时(Android,iOS和嵌入式体系结构)的二进制文件由Gluon基于Open JDK源提供。
  • 基于Debian的Linux系统的二进制文件位于Debian Package Tracker,基于OpenJDK源。
  • Open source code可用于构建JavaFX以与其他平台和Java VM一起使用,作为OpenJDK project的一部分。

有关详细信息,请参阅相关问题和资源:

JavaFXPorts允许在Android运行时本地执行JavaFX,目前通过RoboVM在iOS运行时执行,有关详细信息,请参阅:JavaFXPorts, how it works

  

我可以安装它还是将它与我​​的应用程序捆绑在一起?

就此类发行版的许可而言,我鼓励您进行自己的研究。

答案 1 :(得分:1)

它在Java 7中部分集成,在Java 8中更紧密集成,因此它应该是新VM中的标准并且正在慢慢开放。但是,我不会考虑从Swing迁移到FX作为横向移动的移动,如here所述。

答案 2 :(得分:0)

IBM provides their own version of Java,就我所见,他们似乎无论出于何种原因而无法在运行时提供JavaFX。我只看过规范的Oracle版本提供的JavaFX。