初始化启动层java.lang.module时出错.FindException:找不到模块javafx.controls



我正试图在Intellij 2018.3 IDE中构建示例javaFX应用程序。我已经安装了oracle JDK11,并下载了openjfk11。我创建了一个链接到javafx-sdk的库,并在VM选项行中添加了一行--module path=${path_to_FX}--add modules=javafx.controls,javafx.fxml。PATH_TO_FX被定义为指向我的javaFX文件夹的环境变量。

我已经在这个网站上搜索了很多帖子,包括我的确切错误消息的解决方案。奇怪的是,如果没有构建目录,这个解决方案对我有效。但是,如果我已经构建了一次项目,它就会拒绝运行,并给我声明的错误。如果我删除生成目录并重试,则程序将再次正确运行。

如果你使用IntelliJ,你必须删除src/main/java中的module-info.java,我已经删除了,而且它有效,该文件是在创建javafx项目时自动生成的

尝试将路径添加到JavaFX SDK lib文件夹,而不仅仅是JavaFX SDK。它对我有效。

例如:

--module-path C:javaFXjavafx-sdk-11.0.2lib --add-modules javafx.controls,javafx.fxml

*将">C:\javaFX\javaFX-sdk-11.0.2\lib";与您的javaFX SDK的路径分开";lib";文件夹

如果在module-info.java中定义导出并打开,则不应使用VM路径。因为如果没有明确定义模块,则VM路径是必不可少的。然后IntelliJ在内部为我们创建一个模块

看起来我只是在输出目录上搞砸了一些事情,因为今天早上我试图将构建路径重置为默认路径,它刚刚开始工作。

确认是否没有将javafx-sdk添加到类路径而不是模块路径

最新更新