NoClassDefFoundError 尝试使用 Gmail API 发送电子邮件时

NoClassDefFoundError When trying to use Gmail API to send a email

这是我第一次使用 Gmail REST API,我正在尝试使用它发送电子邮件。我按照 Google 开发者网站上的说明进行操作,并成功完成了身份验证部分。但是现在当我尝试发送电子邮件时抛出异常。完全例外是,

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
at javax.mail.Session.initLogger(Session.java:227)
at javax.mail.Session.<init>(Session.java:212)
at javax.mail.Session.getDefaultInstance(Session.java:315)
at gmailconsole.Email.createEmail(Email.java:45)
at gmailconsole.GmailApiQuickStart.main(GmailApiQuickStart.java:91)
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger
at java.net.URLClassLoader.run(URLClassLoader.java:372)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more

与异常关联的代码

public static void sendMessage(Gmail service, String userId, MimeMessage email)
  throws MessagingException, IOException {
Message message = createMessageWithEmail(email);
message = service.users().messages().send(userId, message).execute();

System.out.println("Message id: " + message.getId());
System.out.println(message.toPrettyString());

}

主要方法调用class

try {
        MimeMessage mimeMessage = Email.createEmail("isurub1992@gmail.com", "me", "Test", "This is a test message");
        Email.sendMessage(service, "me", mimeMessage);
    } catch (MessagingException ex) {
        ex.printStackTrace();
    }

P.S : 我已经在 NetBeasns

中添加了所有库和 JavaEE API 库

ClassNotFoundException 是确定的:在 classpath 中找不到 class。

简短搜索显示在 com.sun.mail_1.4.2.jar 中找到了丢失的 class com.sun.mail.util.MailLogger;看看吧,我敢打赌这会解决你的问题。

不是同一个问题,但对您来说也可能是个不错的信息: java.lang.NoClassDefFoundError: javax/mail/Authenticator, whats wrong?