无Maven/IDE时命令行运行JavaFX模块化应用出现诡异错误
问题排查与解决
核心问题:运行命令的主类指定错误
你当前运行命令里用的是源文件路径 src/main/java/com/example/tetris/Main.java,但Java运行时需要的是编译后的全限定类名,而非源文件路径。编译后的Main.class已存放在bin/com/example/tetris/目录下,对应包名com.example.tetris、主类名Main,因此必须用com.example.tetris.Main来指定主类。
正确的运行命令
替换原运行命令的主类部分,修改后命令如下:
java --module-path lib --add-modules javafx.base,javafx.controls,javafx.graphics,javafx.media -cp bin:lib/sqlite-jdbc-3.45.3.0.jar:lib/slf4j-api-1.7.36.jar com.example.tetris.Main
额外排查点(若修改后仍异常)
- 检查
bin目录包结构:确认bin/com/example/tetris/下存在所有编译后的.class文件,包括Main.class。 - 验证JavaFX版本兼容性:确保
lib目录下的JavaFX模块jar包版本与你的JDK版本匹配,版本不匹配可能引发启动异常。 - 确认资源文件路径:如果应用依赖配置、图片等资源文件,需确保这些文件已正确复制到
bin目录对应位置,或运行时能正确读取到资源路径。
内容的提问来源于stack exchange,提问作者DH615
相关产品推荐
相关产品推荐

