问题 运行 Java Java 1.7u80 上的 FX 应用程序

Problems running JavaFX application on Java 1.7u80

我在 MAC 上使用 Netbeans 8.02,并且正在通过新建项目向导创建一个简单的 JavaFX 应用程序。

当我将平台设置为 Java 1.8 时,它工作得很好,但是当我尝试 运行 在 Java 1.7u80 上时,我得到 "java.lang.NoClassDefFoundError: javafx/application/Application"。当从 IDE 或命令行 运行ning 时,行为是相同的。

任何一个平台都可以正常编译,所以看起来 JavaFX 在我安装的两个平台的类路径上。

我的目标应用程序必须在 1.7 上 运行,所以我不能简单地使用 1.8 就此结束。

如果你想在 Java 1.7 上 运行 JavaFx 应用程序,你需要手动将 jfxrt.jar 添加到你的类路径中。在 Java 1.8 中,默认情况下 jfxrt.jar 在类路径中。所以这就是为什么你在 运行1.7 上遇到这个问题。

您应该可以通过 IDE 添加它。您还可以使用一些第三方工具,例如 JavaFx Maven Plugin

原来我 运行 遇到了 NetBeans IDE 中的这个已知错误。

https://netbeans.org/bugzilla/show_bug.cgi?id=239388

听起来路径设置导致 ide 使用 accident 为平台 V 1.8 构建的 Ant 脚本。

我将 Netbeans 本身的平台更改为 JDK 1.7,现在一切都适用于 1.7,并且使用 JDK 1.7u80 100% 运行 JavaFX 应用程序。