当前位置: 首页 > 知识库问答 >
问题:

当我试图在Java Swing应用程序中发送电子邮件时,出现javax/activation/DataSource异常

冯祺
2023-03-14

我正在尝试创建一个Java Swing(用Ant)应用程序,将电子邮件发送到一个期望的地址(我的第一次)。应用程序构建成功,但是当我单击按钮发送电子邮件时,我收到了许多不同的错误消息,第一条是Java . lang . noclassdeffounderror:javax/activation/data source。发件人的电子邮件是新的,我没有将其与电话号码相关联(有人告诉我这可能会导致问题)。我也已经将mail.jar添加到了项目库中。catch JOptionPane也没有打印任何错误,所以我很难搞清楚这一点。我附上了代码以及错误的截图。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    String toEmail= "email1";//Changed emails for securityPurposes

    String fromEmail = "email2";
    String fromEmailPassword="Password";
    String subject="This is the subject";

    Properties properties = new Properties();
    properties.put("mail.smtp.auth","true");
    properties.put("mail.smtp.starttls.enable","true");
    properties.put("mail.smtp.host","smtp.gmail.com");
    properties.put("mail.smtp.port","587");
    
    Session session=Session.getDefaultInstance(properties,new >javax.mail.Authenticator(){
    @Override
    protected PasswordAuthentication getPasswordAuthentication(){
    return new PasswordAuthentication(fromEmail,fromEmailPassword);
    }
    });
    try{
        MimeMessage message=new MimeMessage(session);
        message.setFrom(new InternetAddress(fromEmail));
        message.addRecipient(Message.RecipientType.TO,new >InternetAddress(toEmail));
        message.setSubject(subject);
        message.setText("Hello");
        Transport.send(message);
    }
    catch(Exception ex){
        JOptionPane.showMessageDialog(null, ex);
    }

    
}                                        

我看过,但没有找到类似的案例或解决方案。

共有2个答案

干弘深
2023-03-14

java.lang.NoClassDefFoundError表示类在类路径中找不到,根据您的描述,我认为您是通过ant创建一个jar,然后使用java-jar执行它。您应该检查:

  1. 在java命令中有一个-cp选项,其中包含所需的jar
  2. 需要的罐子正确指向
易英奕
2023-03-14

在Java11中,所有所谓的“企业”模块都从JDK和JRE中删除了。这包括JAXB等API,也包括Java激活框架。JavaMail需要它,但您的应用程序缺少它(如错误消息所示)。

添加此依赖项:https://mvnrepository.com/artifact/jakarta.activation/jakarta.activation-api/1.2.2。确保远离版本 2.x 及更高版本,这些版本具有不同的软件包名称。

 类似资料:
  • 我需要怎么修? (我使用Apache NetBeans IDE 12.0;Java:15;Java HotSpot(TM)64位服务器VM 15+36-156)

  • 第一次使用java邮件。我正在遵循本教程,但我已经无法发送基本消息,并且我收到了一个非常奇怪的错误: 奇怪的是,我的代码中没有使用IMAP: 错误发生在最后一行(发送)。我知道smtp服务器正常工作。 有什么建议吗?为什么会发生这种情况?我该如何解决? 编辑:显然,地址/主机在这里发生了更改,我使用的是在实际代码中工作的真实地址/主机。

  • 我是java初学者,我想用java发送一封电子邮件,因为我正在用java编写这段代码。但是我的代码抛出了一个异常,我需要一个提示为什么… 这是异常的堆栈跟踪: 这是我的代码

  • 嗨,我正试图在后台发送一封电子邮件,而没有应用程序。我考虑过使用GMailSender/jsse,有人提到/我很难将包添加到GMailSender,这是以前在new com.provider.jsseprovider()中问到的,不能解析符号提供者,但是当我键入包名时会出现错误。 完整代码

  • 我是Java初学者,我想用Java发送电子邮件。为此,我使用这段代码发送电子邮件,但这段代码引发了一个异常。我已经验证了我的用户名和密码,它们绝对没有问题,所以请告诉我是否有其他方法用Java发送电子邮件? 这是异常的堆栈跟踪: 这是我的代码

  • 在我的golang应用程序中,我使用以下代码片段从我的gmail帐户发送电子邮件: 我得到了这个错误: 我已经在本地主机上安装了后缀。我还允许不太安全的应用程序访问我的帐户。我也在我的VPS上尝试了相同的代码,但它也不发送电子邮件。 那么有什么不对呢?我怎样才能修好它?