1

我目前正在开发一个使用 javafx 作为其 UI 的应用程序。我正在使用 java 9。当我从 github 拉出以在我的新计算机上继续开发并编译时,javafx 类的所有引用都存在编译错误,并且只有 javafx 类。

我在外部资源的jdk中搜索,javafx包确实是它应该在的地方。我还使用相同的 jdk 创建了一个新项目并打开了一个 javafx 窗口,它运行良好。这告诉我这是一个特定于项目的问题,而不是系统问题。

有没有人对此有所了解?谢谢。

编辑我正在使用 Intellij 社区 Ed。错误列表很广泛,但这里有一些 在此处输入图像描述

4

1 回答 1

3

您的 IDE 可能已将该项目设置为“模块化”Java 9 项目。在模块化项目中,您指定项目依赖的其他模块,以及模块中的哪些包应该暴露给其他模块。OpenJDK wiki上有一个很好的关于模块的通用教程。

如果类路径根目录中有module-info.java文件,您需要明确声明您的模块需要访问适当的 JavaFX 模块。只需添加可能就足够了

requires javafx.controls ;

到这个文件:这将使您可以访问javafx.controls模块,以及它所依赖的模块(javafx.graphicsjavafx.base)。根据您的项目,您可能还需要

requires javafx.fxml ;

和/或

requires javafx.web ;

等等

于 2018-02-18T16:18:32.587 回答