JavaFX运行报错java.lang.ClassNotFoundException: application.VideoPlayer求助
检查编译后的类文件结构
编译带package application;声明的代码后,必须生成application/VideoPlayer.class目录结构。执行find . -name "VideoPlayer.class",确认文件存在于./application/路径下。如果没有,重新编译时确保命令正确:javac --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.media VideoPlayer.java修正运行命令的类路径
Linux下JVM依赖类路径定位包结构,必须从包结构的根目录执行运行命令。比如你的application文件夹在当前工作目录下,执行:java --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.media application.VideoPlayer不要进入
application目录后运行java VideoPlayer,这会导致JVM找不到application包。验证环境变量有效性
执行echo $PATH_TO_FX和echo $JAVA_HOME,确认输出是正确的JavaFX SDK lib目录和JDK安装路径。如果环境变量未生效,将以下内容添加到~/.bashrc(或~/.zshrc,根据你使用的shell):export JAVA_HOME=/usr/lib/jvm/java-19-openjdk-amd64 export PATH_TO_FX=/path/to/your/javafx-sdk-19/lib export PATH=$JAVA_HOME/bin:$PATH然后执行
source ~/.bashrc使配置生效。核对包声明与类名
确认VideoPlayer.java顶部的包声明是package application;,类名是public class VideoPlayer——Linux文件系统大小写敏感,包名和类名的大小写必须完全匹配,不能出现Application或videoplayer这类错误写法。确保编译时模块参数完整
视频播放依赖javafx.media模块,编译时必须添加到--add-modules参数中,避免因模块缺失间接导致类加载失败:javac --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.media VideoPlayer.java
内容的提问来源于stack exchange,提问作者CSB

