You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java通过SMTP发邮件报NoClassDefFoundError: javax/mail/MessagingException问题

Java邮件发送NoClassDefFoundError报错解决方案

报错根因

java.lang.NoClassDefFoundError: javax/mail/MessagingException 报错是运行时类路径未成功加载mail.jar、activation.jar依赖导致的,编译时引入依赖只能保证编译通过,运行时未将依赖加载到类路径就会触发该问题。

对应解决方法

  • 如果你是本地直接通过java命令运行testmail类
    运行命令需要显式指定包含两个依赖包的类路径,示例如下:

    # Linux/Mac 环境
    java -cp .:mail.jar:activation.jar testmail
    # Windows 环境(分隔符换为分号)
    java -cp .;mail.jar;activation.jar testmail
    

    其中.代表加载当前目录下你自己编写的编译后class文件,后面的jar包如果不在当前目录需要补全完整文件路径。

  • 如果你是将代码部署到Tomcat 9中运行
    需要将mail.jar和activation.jar两个依赖包放入Web项目的WEB-INF/lib目录下;如果有多个项目需要使用该依赖,也可以放入Tomcat安装根目录的lib文件夹中,放置完成后重启Tomcat即可。

额外注意事项

  • 若你使用的JDK版本≥9,javax.activation模块已从默认JDK中移除,可在运行命令中添加--add-modules java.activation参数,或更换为更新的Jakarta Mail依赖包替代旧版JavaMail。
  • 检查你下载的mail.jar和activation.jar是否完整,避免下载到损坏的依赖包导致类加载失败。

内容的提问来源于stack exchange,提问作者Aryan Malpani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 19:24:02