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.graphics
和 javafx.base
)。根据您的项目,您可能还需要
requires javafx.fxml ;
and/or
requires javafx.web ;
等等
我目前正在开发一个使用 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.graphics
和 javafx.base
)。根据您的项目,您可能还需要
requires javafx.fxml ;
and/or
requires javafx.web ;
等等