Java应用初始化时找不到com.example.demo3模块问题求助
错误信息
VM参数
VM : "--module-path "C:\java\javafx-sdk-20.0.1\lib" --add-modules javafx.controls,javafx.fxml"
启动命令与报错
"C:\Program Files\Java\jdk-20\bin\java.exe" --module-path C:\java\javafx-sdk-20.0.1\lib --add-modules javafx.controls,javafx.fxml "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.2\lib\idea_rt.jar=53786:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2023.1.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath "C:\Users\SUNLIGHT COMPUTER.m2\repository\org\openjfx\javafx-controls\20\javafx-controls-20.jar;C:\Users\SUNLIGHT COMPUTER.m2\repository\org\openjfx\javafx-graphics\20\javafx-graphics-20.jar;C:\Users\SUNLIGHT COMPUTER.m2\repository\org\openjfx\javafx-base\20\javafx-base-20.jar;C:\Users\SUNLIGHT COMPUTER.m2\repository\org\openjfx\javafx-fxml\20\javafx-fxml-20.jar" -m com.example.demo3/com.example.demo3.HelloApplication
Error occurred during initialization of boot layer
java.lang.module.FindException: Module com.example.demo3 not found
Process finished with exit code 1
可能原因
- 模块路径未包含自身模块:当前
--module-path仅指定了JavaFX的SDK路径,没有将项目编译后的模块输出目录加入,JVM无法定位com.example.demo3模块。 - 模块化与类路径混用:启动命令同时使用
-classpath和-m(模块化启动方式),导致JVM模块解析逻辑冲突,模块化项目应优先通过--module-path管理依赖与自身模块。 - module-info.java配置错误:项目根目录缺少该文件,或文件中声明的模块名不是
com.example.demo3,也可能未正确声明对JavaFX模块的依赖。 - 编译输出目录未被识别:IntelliJ IDEA中项目的编译输出路径未被正确配置,模块字节码文件不在JVM可搜索范围内。
解决方法
- 修正module-info.java:确保项目根目录存在该文件,内容示例:
module com.example.demo3 { requires javafx.controls; requires javafx.fxml; opens com.example.demo3 to javafx.fxml; exports com.example.demo3; } - 更新VM参数,加入自身模块路径:将项目编译输出目录(如IntelliJ默认的
out/production/classes或Maven的target/classes)添加到--module-path,示例:--module-path "C:\java\javafx-sdk-20.0.1\lib;C:\你的项目路径\out\production\classes" --add-modules javafx.controls,javafx.fxml - 移除-classpath参数:模块化启动无需指定
-classpath,所有依赖(包括自身模块)都通过--module-path配置。 - 检查IntelliJ运行配置:进入Run/Debug Configurations,确认:
- 「Module」选项选择当前项目的
com.example.demo3模块 - 「VM options」中的
--module-path已包含JavaFX SDK路径和项目编译输出路径 - 「Main class」正确填写为
com.example.demo3.HelloApplication
- 「Module」选项选择当前项目的
内容的提问来源于stack exchange,提问作者Noor khalil

