JavaFX仅与JDK一起运行

JavaFX仅与JDK一起运行,java,javafx,Java,Javafx,我的JavaFX桌面程序只在安装了JDK1.8的情况下运行,不在JRE 1.8的情况下运行 任何JavaFX应用程序都应该与JRE一起运行吗? 如果没有,我如何找到需要JDK的原因?这是因为JavaFX运行时没有打包到JRE的某些发行版中。据我所知,JavaFX只有在jdk9发布后才会出现在所有发行版中。在此之前,安装JDK而不是JRE更安全,或者在将项目导出到jar文件时可以包含jfxrt.jar。根据Oracle的说法,JavaFXSDK和运行时(jfxrt.jar)包含在JavaJDK中,

我的JavaFX桌面程序只在安装了JDK1.8的情况下运行,不在JRE 1.8的情况下运行

任何JavaFX应用程序都应该与JRE一起运行吗?
如果没有,我如何找到需要JDK的原因?

这是因为JavaFX运行时没有打包到JRE的某些发行版中。据我所知,JavaFX只有在jdk9发布后才会出现在所有发行版中。在此之前,安装JDK而不是JRE更安全,或者在将项目导出到jar文件时可以包含
jfxrt.jar

根据Oracle的说法,JavaFXSDK和运行时(
jfxrt.jar
)包含在JavaJDK中,从JavaSE7更新2开始。只要应用程序是使用此版本或更高版本编译的,它就应该运行JavaFX

同样,JavaFXAPI与JavaSE运行时环境(JRE)和Java开发工具包(JDK)完全集成

您应该在JDK和JRE中找到
jfxrt.jar
的具体位置是:

  • 对于Java7,在
  • 对于Java8,在

其他信息可以在Oracle的各种JavaFX资源中找到,例如和-尽管后者是为JavaFX2创建的,因此可能与最新版本的JavaFX不完全兼容

您得到了什么错误?Oracle还认为
jre/lib/ext
中的所有内容都是可选的,供应商可以自行决定将它们排除在外。@Jai,但在本例中,我使用的是正式的jre 1.8,因此所有内容都包括在内。JavaFX包含在Oracle JDK 8中,而Oracle JDK 7则是可选的安装程序。使用OpenJDK时,只需安装OpenJFX就足够了。JavaFX不需要JDK。@FibreFoX我的JRE(在我的计算机上)8u112没有
jfxrt.jar
。基于发行版,它仍然是可选的。您使用什么JRE?Windows还是Linux?@FibreFoX Windows。奇怪的是,我有其他版本的JRE,它们确实有
jfxrt.jar
。JDK 8u122有
jfxrt.jar
,但是@FibreFoX,如果我运行使用JRE 1.8运行的.jar文件,我会使用你的gradle插件编译程序,但是如果安装了JDK,则.exe会给出错误或常开。你的插件应该有错误吗?