如果我运行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 项目会设置一个使用一堆 JavaFX 内容且没有任何错误的项目。
作为 Java 7u40,它应该内置 JavaFX 2.2.40,是吗?不? See Oracle JavaFX Release Documents
如果我能让 JavaFX 表现出来,我将在 Netbeans 中已经存在的普通 Java 项目中使用它,并且它将嵌入到现有的 Swing GUI 中,而不是新的 JavaFX 项目中。
我在 Stack Overflow 上看到了其他类似的问题,但他们至少似乎能够编译和运行他们的应用程序,并且遇到运行时错误或意外行为。我什至无法达到这一点。
由于 Oracle 表示应包含 JavaFX 2.2.40,因此如何在 7u40 下的 Java 应用程序中使用 JavaFX?我是否应该期望能够像其他内置 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
)。
关于JavaFX 不在 Java 7u40 的类路径上,oracle 文档说应该包含该类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952475/