Java 9 gradle无法找到javafx模块

时间:2017-09-22 17:18:45

标签: java gradle javafx java-9 javafx-9

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

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

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

现在的问题是该项目还使用了javafx。在Java 8中,jfxrt.jar包含在jdk中,据我所知,它位于默认的classpath中。 对于Java 9 i red来说,它现在也已模块化并包含在内。

但是当我尝试编译模块时,编译器告诉我他找不到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

1 个答案:

答案 0 :(得分:2)

编译器无法在debian系统上找到javafx模块但在没有

的情况下在Windows上运行正常的原因
.../src/module-info.java:10: error: module not found: javafx.controls
       requires javafx.controls;
                  ^

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

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

如果您的应用程序可能也在使用这些文档,那么该文档还会说明JavaFX图形和媒体支持详细信息。