12

我在这个站点和其他地方阅读了几个问题,这些问题表明在安装 Oracle JDK7 时,如果正确安装了 JDK,则不需要指定 jfxrt.jar 的类路径。不幸的是,我的安装似乎不正确,但我不知道出了什么问题。

我为我的 Red Hat Enterprise Linux 6.2 服务器使用了正确的 RPM,当我将 jfxrt.jar 添加到外部 Jar 时,我能够在 Eclipse 中构建 JavaFX 应用程序。但是当尝试从命令行编译和运行时,它找不到 JavaFX 类,除非我为 javac 和 java 指定 -cp 选项。该服务器最初使用的是openjdk-1.6,但我使用了替代方案来配置javac和java以指向新安装的JDK。除了这个问题,它看起来工作正常。

我发现在尝试运行 JavaFX Exporter 时同样的问题困扰着我。我试图导出一个在 Eclipse 中运行良好的项目。但它在尝试运行时找不到 JavaFX 类。而且我还没有弄清楚如何告诉导出器 jfxrt.jar 文件所在的位置。

作为参考,jfxrt.jar 位于我系统上的 /usr/java/jdk1.7.0_21/jre/lib/jfxtr.jar 中。

4

2 回答 2

14

在安装 Oracle JDK7 时,如果正确安装了 JDK,则不需要指定 jfxrt.jar 的类路径。

那不是真的。

如果您想在 Java 7 (u21) 中编译和运行 JavaFX 应用程序并且您没有使用JavaFX 打包工具,则需要将 jfxrt.jar 添加到您的类路径中。

有关设置 JavaFX 类路径以从命令行编译(使用 javac)和运行(使用 java)JavaFX 2 应用程序的示例,请参阅使用 JavaFX 2.0(使用命令行)编译代码。

一些 IDE 或 IDE 扩展会意识到这一点,并会自动将 jfxrt.jar 添加到您的类路径(例如 e(fx)clipse 插件或 NetBeans JavaFX 项目类型)。

一些 3rd 方工具(例如JavaFX Maven 插件JavaFX Gradle 插件)也会打包 JavaFX 应用程序,因此您无需将 jfxrt.jar 添加到类路径中。

对于 Eclipse 开发,建议使用e(fx)clipse 插件,因为它可以处理类路径问题(以及为 JavaFX 开发人员提供其他有用的功能)。

对于Java 8,jfxrt.jar 位于默认的 classpath 上,因此您无需显式设置您的 classpath 以将 JavaFX 与该 Java 版本的 javac.exe 或 java.exe 等工具一起使用。

于 2013-05-31T07:39:15.907 回答
0

OpenJdk7 不包含 jfxrt.jar。改用 Oracle Jdk7 会有所帮助。

于 2014-10-28T12:28:57.010 回答