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

时间:2015-03-04 06:19:38

标签: java exception gmail-api

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

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$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.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());

}

主类中的方法调用

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库

1 个答案:

答案 0 :(得分:1)

ClassNotFoundException是明确的:classpath中找不到该类。

简短搜索显示在com.sun.mail.util.MailLogger中找到了缺失的班级com.sun.mail_1.4.2.jar;所以看看,我会打赌这可以解决你的问题。

不一样的问题,但它也可能是一个很好的信息: java.lang.NoClassDefFoundError: javax/mail/Authenticator, whats wrong?