在IntelliJ中运行JavaFX本地应用遇javafx.controls模块未找到错误
解决JavaFX模块找不到的问题
核心错误原因
看你提供的运行命令,模块路径末尾多了个多余的点号:
--module-path ~/Downloads/javafx-sdk-17.0.11/lib. -Djava.library.path=~/Downloads/javafx-sdk-17.0.11/lib.
这里的lib.是无效路径,JVM无法识别这个目录,自然找不到javafx.controls模块。
分步解决方法
修正路径错误
打开IntelliJ的运行配置,找到VM选项区域,把lib.改成lib,比如:--module-path ~/Downloads/javafx-sdk-17.0.11/lib --add-modules javafx.controls,javafx.fxml如果用JavaFX 22,就对应改成
~/Downloads/javafx-sdk-22/lib。统一JDK与JavaFX版本
你用的是OpenJDK 22,建议搭配JavaFX 22 SDK使用,版本一致能避免很多兼容性问题,虽然JavaFX 17也能兼容,但同版本适配性更好。清理冗余的ClassPath配置
你的运行命令里同时通过--module-path和-classpath加载了JavaFX的jar包,这会导致冲突。建议在IntelliJ的依赖配置里,只保留通过module-path引入JavaFX模块,去掉ClassPath里的JavaFX jar引用。
验证修改后的命令示例
修正后正确的运行命令应该类似:
/Users/ashwin/Library/Java/JavaVirtualMachines/openjdk-22.0.1/Contents/Home/bin/java --module-path ~/Downloads/javafx-sdk-22/lib --add-modules javafx.controls,javafx.fxml -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=49194:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /Users/ashwin/Desktop/RPGenerator/Random Password Generator/out/production/Random Password Generator PasswordApp
内容的提问来源于stack exchange,提问作者astrosshow
相关产品推荐
相关产品推荐

