1. 问题描述
1.1 报错信息
# java -jar shiro_4.5.6-SNAPSHOT-all.jar
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
Error: Could not find or load main class com.summersec.attack.UI.Main
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
1.2 报错截图
![image.png](https://cdn.nlark.com/yuque/0/2023/png/507497/1681269757860-b8fb0167-deb3-4349-862f-7e7f067fc051.png#averageHue=%232d3847&clientId=u8a3c6fc2-9d13-4&from=paste&height=80&id=u69e39df2&originHeight=80&originWidth=656&originalType=binary&ratio=1&rotation=0&showTitle=false&size=33535&status=done&style=none&taskId=u8c1b5013-e0d6-4fa9-8602-be07851a703&title=&width=656)
2. 问题定位
java8(jdk1.8)到java10(jdk10)中内含有JavaFx 然而在java11(jdk11)以及以后的版本中剥离出来
需要开发者独立下载,另行导入。
3. 解决办法
3.1 下载依赖
下载JavaFx ,地址:https://gluonhq.com/products/javafx/
![image.png](https://cdn.nlark.com/yuque/0/2023/png/507497/1681270511563-4bb5a7af-0ae0-4e2e-84a0-c66dd6275f81.png#averageHue=%23f9f9f9&clientId=u8a3c6fc2-9d13-4&from=paste&height=1181&id=u7ba7886c&originHeight=1181&originWidth=1461&originalType=binary&ratio=1&rotation=0&showTitle=false&size=219936&status=done&style=none&taskId=u03eec016-9ecf-4c53-ba78-994ea6475b8&title=&width=1461)
3.2 指定module并运行
java --module-path [lib目录] --add-modules javafx.controls,javafx.fxml -jar [jar文件路径]
![image.png](https://cdn.nlark.com/yuque/0/2023/png/507497/1681271140428-32ebe45b-177a-4acd-bbd2-46d6667a3dba.png#averageHue=%23cbb99c&clientId=u8a3c6fc2-9d13-4&from=paste&height=643&id=u02d91fe0&originHeight=643&originWidth=886&originalType=binary&ratio=1&rotation=0&showTitle=false&size=145279&status=done&style=none&taskId=u3aa092b0-d552-4cc4-a1ce-55ab4a099b3&title=&width=886)
4. 参考链接
命令行运行jar包出现原因: java.lang.NoClassDefFoundError: javafx/application/Application的解决方案_运行jar包application_wkend的博客-CSDN博客