我遵循了几个地方提到的“JavaFX将取代Swing”建议(SO,Wikipedia,Oracle),但这似乎是一个白色谎言。当我使用IBM V9(build 2.8,JRE 1.8.0)运行JavaFX应用程序时,我得到:
java.lang.ClassNotFoundException: javafx.application.Application
我找不到任何资源来解释JavaFX是否是跨VM技术,或者这只是另一个供应商锁定“功能”。
JavaFX在哪里可用?如果它在某些VM中不可用,我可以安装它还是将它与我的应用程序捆绑在一起?
答案 0 :(得分:3)
JavaFX不适用于每个Java VM。例如,Oracle Solaris Java发行版不包含JavaFX支持。
JavaFX可用于许多Java VM。 JavaFX运行时可用于(至少)以下平台:
JavaFX下载和源位置:
有关详细信息,请参阅相关问题和资源:
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。