JavaFX 不在 Java 7u40 的类路径上,oracle 文档说应该包括在内

JavaFX not on classpath for Java 7u40, which oracle documentation says should be included

如果我运行C:\Program Files\java\jdk1.7.0_40\bin\javap javafx.application.Application我遇到了Error: class not found: javafx.application.Application.

如果我 运行 Netbeans,它有一个 Java 7 平台和一个 JavaFX 平台,两者具有相同的设置(相同的平台文件夹,相同的 类, 相同的 javadoc), 所以我假设这两个平台的行为是一样的。如果我创建一个新的 Java 项目,import javafx.application.Application 会给出一个错误 package javafx.application does not exist 但是创建一个新的 JavaFX 项目会设置一个使用一堆 Java 的项目FX 东西没有任何错误。

作为 Java 7u40,它应该内置 JavaFX 2.2.40,是吗?不? See Oracle JavaFX Release Documents

如果我能让 JavaFX 正常运行,我将在 Netbeans 中已经存在的正常 Java 项目中使用它,并将嵌入到现有的 Swing GUI 中,而不是新的Java外汇项目。

我在 Stack Overflow 上看到过其他类似的问题,但他们至少似乎能够编译 运行 他们的应用程序,并且会遇到 运行 时间错误或意外行为。我什至无法做到这一点。

如何在 7u40 下的 Java 应用程序中使用 JavaFX,因为 Oracle 说应该包括 JavaFX 2.2.40?我是否应该像其他任何内置 Java 包一样期望能够正常包含 javafx 包?

JavaFX 包含在 Java 7 中,但默认情况下不在类路径中。如果您不想创建JavaFX项目,您需要手动将jfxrt.jar文件添加到您的项目中;它在 JAVA_HOME/jre/lib 目录中。

如果您运行使用命令行,则需要

java -cp JAVA_HOME/jre/lib/jfxrt.jar:. com.example.MainClass

如果升级到 Java 8,则 jfxrt.jar 文件在类路径中(它被移动到 JAVA_HOME/jre/lb/ext)。