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

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

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

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

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

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

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

 requires javafx.controls ; 

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

 requires javafx.fxml ; 

和/或

 requires javafx.web ; 

等等