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

Apache NetBeans12 Java15用SMTP发邮件报NoClassDefFoundError如何解决

问题根因

从Java 11版本开始,原JDK内置的Java Activation Framework(包含javax.activation.DataSource类)、JavaMail组件被正式移出标准JDK,你使用的Java 15版本已经没有内置上述类,因此运行SMTP邮件发送代码时会抛出类未找到的异常。

修复方案

根据你的项目管理方式选择对应操作:

方式1:Maven/Gradle构建项目(推荐)

在项目的依赖配置文件中添加JavaMail和JAF的依赖即可:

Maven配置(pom.xml)

<dependencies>
    <!-- JavaMail核心依赖 -->
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.6.2</version>
    </dependency>
    <!-- JAF激活框架依赖 -->
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>
</dependencies>

刷新Maven依赖后重新运行项目即可。

方式2:NetBeans普通项目手动导入Jar包

  • 下载官方的javax.mail.jar和activation.jar两个Jar包
  • 在NetBeans中右键点击你的项目名称,依次选择「属性」→「库」→「编译时库」
  • 点击「添加JAR/文件夹」,选中你下载的两个Jar包,确认导入
  • 清理并重新构建项目后运行即可
注意事项

如果你后续要升级使用Jakarta EE规范的邮件组件,需要将代码中的javax.mail、javax.activation包名替换为jakarta.mail、jakarta.activation,同时依赖更换为Jakarta对应的版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:24:00