Java 9 gradle 找不到 javafx 模块

标签 java gradle javafx java-9 javafx-9

我正在尝试在带有 gradle 4.2 的 debian 系统上使用 GA Jdk 9 编译 java 9 模块库。 为此,我这样做是为了用模块路径替换我的类路径:

compileJava {
    doFirst {
        options.compilerArgs = [
            '--module-path', classpath.asPath,
        ]
        classpath = files()  
    }
}

我在类路径中有我所有的依赖库,它们进入模块路径并且工作正常,当我尝试编译时它确实找到了我自己的所有库。

现在的问题是该项目还使用了 javafx。据我所知,在 Java 8 中,jfxrt.jar 包含在 jdk 中并且位于默认类路径中。 对于 Java 9,我知道它现在也被模块化并包含在内。

但是当我尝试编译模块时,编译器告诉我他找不到 javafx 模块:

.../src/module-info.java:10: error: module not found: javafx.controls
       requires javafx.controls;
                      ^

在 Windows 上,它在模块路径中没有 javafx 蜂鸣的情况下工作正常

Jdk 包括 javafx:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

最佳答案

编译器在 debian 系统上找不到 javafx 模块,但在没有的情况下在 Windows 上工作正常的原因

.../src/module-info.java:10: error: module not found: javafx.controls
       requires javafx.controls;
                  ^

可能是 Operating Systems 中列出的 认证配置。 除了使用@Alan 在评论中建议的 java --list-modules 确认模块列表外,请确保:

对于 Linux 平台,需要 gtk2 2.18+ 才能支持 JavaFX。


该文档还说明了 JavaFX 图形和媒体支持的详细信息(如果您的应用程序也可能使用它们的话)。

关于Java 9 gradle 找不到 javafx 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46370024/

相关文章:

java - eclipse如何理解文件系统中的文件变化?

Java调整图像的中心

android - 在 2.3 上处理 Android Studio 3.0 项目

java - 从哪里获得 JavaFX 源代码?

java - ProGuard 版本 5.3.2 支持 JavaFx 吗?

java - Android AAPT 发生了什么?

java - Eclipse(Weblogic 研讨会)构建路径上的项目存在问题

java - Jar(使用gradle任务生成)中的Java文件无法在工作空间中访问

android - 即使targeSdkVersoin的版本与24相同,Gradle appcompat-v7也会出现错误?

VSCode 中的 JavaFX-11 : Error: Could not find or load main class Files\Java\javafx-sdk-11. 0.2\lib