我正在开发一个 JavaFX 应用程序,使用 Java 1.7(build 1.7.0_25-b17)。因此,我假设 javafx 运行时包含在 java 运行时中。该项目有一些依赖项,这些依赖项在 pom.xml 文件中定义。
我手头的问题是 javafx 运行时(jfxrt.jar)似乎没有包含在类路径中,如上所示。因此,我的应用程序显示指向 javafx 类的编译错误。有什么我想念的吗。
maven依赖如下所示:
我将 javafx 运行时单独添加到 pom 中,如下所示:
<dependency>
<groupId>javafx</groupId>
<artifactId>jfxrt</artifactId>
<version>${javafx.min.version}</version>
<scope>system</scope>
<systemPath>${java.home}\lib\jfxrt.jar</systemPath>
</dependency>
JavaFX 2.2 及更高版本与 Java SE 7 运行时环境 (JRE) 和 Java 开发工具包 (JDK) 完全集成。
这意味着您应该能够只使用这些javafx.*
包而无需添加除 JDK 之外的任何库。在您的情况下,Eclipse 和 Maven 似乎很愚蠢。(JavaFX 库和其他一些库在 中$JDK_HOME/jre/lib/*
,Eclipse 似乎只添加了中的内容$JDK_HOME/lib
。IntelliJ IDEA 在这里做了正确的事情。)
Java7 中的 JavaFX 不在任何类路径上——您需要调整项目类路径或使用像 e(fx)clipse 这样的工具来为您管理。
在 Java8 中,它位于扩展类路径中!