IDEA:java.lang.NoClassDefFoundError:javax / activation / DataHandler

I’m trying to send an email in java. Here’s the code:

String mailSmtpHost = "smtp.example.com";
String mailTo = "email@example.com";
String mailFrom = "email@example.com";
String mailSubject = "Email subject";
String mailText = "Some text";
Properties properties = new Properties();
properties.put("mail.smtp.host", mailSmtpHost);
Session emailSession = Session.getDefaultInstance(properties);
try {
    Message emailMessage = new MimeMessage(emailSession);
    emailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));
    emailMessage.setFrom(new InternetAddress(mailFrom));
    emailMessage.setSubject(mailSubject);
    emailMessage.setText(mailText);
    emailSession.setDebug(true);
    Transport.send(emailMessage);
}catch(Exception e) {
    System.out.println("Errore email: "+e.toString());
}

When I compile the project, on line:

Message emailMessage = new MimeMessage(emailSession);

…the following error comes out:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataHandler

Note: I’m using java -version: 9.0.4

JDK 9 disables access to many of the javax.* APIs by default, javax activation is now deprecated.

However you can resolve it with adding the module at run time

--add-modules java.activation
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值