我在一台 Linux Mint 机器上,我安装了最新版本的 Java(HotSpot VM 1.7.0_45)并使用 Gradle 1.8。
我也安装了 Groovy,版本 1.8.6,但我认为这并不重要,因为 Gradle 有自己的 groovy-all.jar。
我的问题是我无法使用 gradle 编译我的 Groovy 项目,因为 JavaFX 类似乎不在类路径中。错误是这样的:
unable to resolve class javafx.scene.Node
@ line 3, column 1.
import javafx.scene.Node
我最终通过将以下可怕的硬编码路径添加到我的依赖项中来解决此问题:
compile files( "/usr/lib/jvm/java-7-oracle/jre/lib/jfxrt.jar" )
有没有更好的方法将 JavaFX 添加到 Gradle 的编译类路径中,以便我的所有项目都可以看到它,而无需我将其添加到每个项目中?
我已经尝试了我能想象的一切:
ext
文件夹,这样我现在可以使用 javac 编译 java 类并使用 java
运行它们(我知道在这个版本的 Java 中,JavaFX jar 应该已经在 JDK 的类路径中,但在执行此操作之前,我仍然无法运行我的 Java 应用程序,而不是编译)。 导入 javafx.application.Application 作为 A ; println A
这也适用于 Groovy 控制台。
它只是在 Gradle 中不起作用!
谢谢你的帮助。
最佳答案
使用 JavaFX Gradle Plugin .
JavaFX Gradle 插件应该能够确定 JavaFX 运行时所在的位置,而无需执行手动的环境特定配置。
有关 JavaFX 类路径解析(与 Gradle 无关)的更多信息,请参阅:
Compile code using JavaFX 2.0 (using command line) .
另请注意,如果您使用 Oracle Java 8或更新版本,JavaFX 类现在位于 Oracle Java 实现的默认运行时类路径中。
顺便提一下,build system for the entire JavaFX system is based on Gradle ,所以JavaFX和Gradle之间绝对没有不兼容的地方。
关于groovy - Gradle 找不到 JavaFX 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19552740/