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?
这是我第一次使用 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?