Jakarta Mail报错:未找到jakarta.mail.util.StreamProvider提供者
解决Jakarta Mail的
Not provider of jakarta.mail.util.StreamProvider错误 问题原因
你只引入了Jakarta Mail和Activation的API包(仅包含接口定义),缺少对应的实现类包,导致运行时找不到jakarta.mail.util.StreamProvider的具体实现。
解决步骤
- 添加实现包:需要下载与你使用的API版本匹配的实现包,对应你用的
jakarta.mail-api-2.1.0.jar和jakarta.activation-api-2.1.2.jar,要补充angus-mail-2.1.0.jar(Jakarta Mail的官方实现)和angus-activation-2.1.2.jar(Activation的官方实现)。 - 更新编译命令:
C:\Progra~1\Java\jdk-21\bin\javac -classpath .;jakarta.mail-api-2.1.0.jar;jakarta.activation-api-2.1.2.jar;angus-mail-2.1.0.jar;angus-activation-2.1.2.jar TestEmail.java - 更新运行命令:
C:\Progra~1\Java\jdk-21\bin\java -classpath .;jakarta.mail-api-2.1.0.jar;jakarta.activation-api-2.1.2.jar;angus-mail-2.1.0.jar;angus-activation-2.1.2.jar TestEmail
补充说明
- Jakarta Mail采用API与实现分离的设计,API包仅提供规范定义,必须搭配对应的实现包才能完成实际功能。
- 务必保证实现包版本与API包版本一致,避免出现版本兼容问题。
内容的提问来源于stack exchange,提问作者Peter Szeto
相关产品推荐
相关产品推荐

