Java 找不到 JavaFx 类 尽管存在于 JDK

Java cannot find JavaFx classes although present in JDK

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

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

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

编辑 我正在使用 Intellij 社区 Ed。错误列表很长,但这里有一些

您的 IDE 可能已将项目设置为 "modular" Java 9 项目。在模块化项目中,您指定项目所依赖的其他模块,以及模块中的哪些包应该向其他模块公开。 OpenJDK wiki 有一个很好的模块通用教程。

如果类路径根目录中有一个 module-info.java 文件,您需要明确声明您的模块需要访问适当的 JavaFX 模块。仅添加

可能就足够了
requires javafx.controls ;

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

requires javafx.fxml ;

and/or

requires javafx.web ;

等等