【问题标题】:Gradle fails to find JavaFX classesGradle 找不到 JavaFX 类
【发布时间】:2013-11-02 09:09:42
【问题描述】:

我在 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 的编译类路径中,这样我的所有项目都可以看到它,而无需我将其添加到每个项目中??

我已经尝试了我能想象到的一切:

  • 将 jfxrt.jar 添加到标准 JRE(我确认 gradle 正在使用我的标准 java 运行)ext 文件夹,这样我现在可以使用 javac 编译 java 类并使用 java 运行它们(我知道在这个版本的 Java 中,JavaFX jar 应该已经在 J​​DK 的类路径中,但在执行此操作之前,我仍然无法运行我的 Java 应用程序,而不是编译)。
  • 还在 groovy 类路径中添加了指向同一个 jar 的软链接,这样我就可以从 groovy shell 执行如下所示的操作,并且它可以工作:

    将 javafx.application.Application 作为 A 导入; println A

这也适用于 Groovy 控制台。

它只在 Gradle 中不起作用!

感谢您的帮助。

【问题讨论】:

    标签: groovy javafx gradle


    【解决方案1】:

    使用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之间肯定没有不兼容的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2017-10-22
      相关资源
      最近更新 更多