注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

Java不能发邮件并且异常:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/m解决方案  

2012-12-22 19:29:59|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Java代码 
  1. public class MailClient     
  2. {     
  3.     public void sendMail(String mailServer, String from, String to,     
  4.             String subject, String messageBody)     
  5.             throws MessagingException, AddressException     
  6.     {     
  7.         // Setup mail server     
  8.         Properties props = System.getProperties();     
  9.         props.put("mail.smtp.host", mailServer);     
  10.     
  11.         // Get a mail session     
  12.         Session session = Session.getDefaultInstance(props, null);     
  13.     
  14.         // Define a new mail message     
  15.         Message message = new MimeMessage(session);     
  16.         message.setFrom(new InternetAddress(from));     
  17.         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));     
  18.         message.setSubject(subject);     
  19.     
  20.         // Create a message part to represent the body text     
  21.         BodyPart messageBodyPart = new MimeBodyPart();     
  22.         messageBodyPart.setText(messageBody);     
  23.     
  24.         // use a MimeMultipart as we need to handle the file attachments     
  25.         Multipart multipart = new MimeMultipart();     
  26.     
  27.         // add the message body to the mime message     
  28.         multipart.addBodyPart(messageBodyPart);     
  29.     
  30.         // Put all message parts in the message     
  31.         message.setContent(multipart);     
  32.     
  33.         // Send the message     
  34.         Transport.send(message);     
  35.     
  36.     }     
  37.          
  38.     public static void main(String[] args)     
  39.     {     
  40.         try    
  41.         {     
  42.             MailClient client = new MailClient();     
  43.             String server="mail.gmail.com";     
  44.             String from="johndoe@gmail.com";     
  45.             String to = "johndoe@gmail.com";     
  46.             String subject="Test";     
  47.             String message="Testing";     
  48.              
  49.             client.sendMail(server,from,to,subject,message);     
  50.         }     
  51.         catch(Exception e)     
  52.         {     
  53.             e.printStackTrace(System.out);     
  54.         }     
  55.              
  56.     }     
  57. }    


Exception代码 
  1. Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream  
  2.     at javax.mail.Session.loadProvidersFromStream(Session.java:928)  
  3.     at javax.mail.Session.access$000(Session.java:174)  
  4.     at javax.mail.Session$1.load(Session.java:870)  
  5.     at javax.mail.Session.loadResource(Session.java:1084)  
  6.     at javax.mail.Session.loadProviders(Session.java:889)  
  7.     at javax.mail.Session.<init>(Session.java:210)  
  8.     at javax.mail.Session.getDefaultInstance(Session.java:299)  
  9.     at javax.mail.Session.getDefaultInstance(Session.java:339)  
  10.     at com.happy.mail.SendMail.send(SendMail.java:58)  
  11.     at com.happy.mail.SendMail.main(SendMail.java:37)  


解决方案 :

今天写代码还能纳闷的遇到了一个问题,就是这个异常:Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream,我向佛祖发誓这个包我绝对导入了,但是异常告诉我找不到这个包!,以前写过java发送邮件的代码,没见过这样的异常,今天就遇上了,或许是因为我用了不同的方法造成的,对网上资源一顿搜索,最后发现是和Java EE 5 Libraries/javaee.jar/mail冲突,找到病原那就立刻诊治: 

    用解压文件打开C:\Program Files\Genuitec\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.5.0.me201003231033\data\libraryset\EE_5\javaee.jar,删除其中的mail就好了,我这个是以myeclipse8.5为例子的,因为我用的是8.5,但是方法都一样, 

     注意:打开javaee.jar包时用好压软件是打不开的,要用WinRAR软件!希望碰到这样问题的朋友都可以解决! 


Java代码 
  1. "D:\Java\Genuitec\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.6.0.me201007292038\data\libraryset\EE_5\javaee.jar"  

Java代码 
  1. // 打开上面的文件夹,然后删除里面的mail文件夹,OK!  

  评论这张
 
阅读(580)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016