`

Java不能发邮件并且报Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/m

阅读更多
public class MailClient   
{   
    public void sendMail(String mailServer, String from, String to,   
            String subject, String messageBody)   
            throws MessagingException, AddressException   
    {   
        // Setup mail server   
        Properties props = System.getProperties();   
        props.put("mail.smtp.host", mailServer);   
  
        // Get a mail session   
        Session session = Session.getDefaultInstance(props, null);   
  
        // Define a new mail message   
        Message message = new MimeMessage(session);   
        message.setFrom(new InternetAddress(from));   
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));   
        message.setSubject(subject);   
  
        // Create a message part to represent the body text   
        BodyPart messageBodyPart = new MimeBodyPart();   
        messageBodyPart.setText(messageBody);   
  
        // use a MimeMultipart as we need to handle the file attachments   
        Multipart multipart = new MimeMultipart();   
  
        // add the message body to the mime message   
        multipart.addBodyPart(messageBodyPart);   
  
        // Put all message parts in the message   
        message.setContent(multipart);   
  
        // Send the message   
        Transport.send(message);   
  
    }   
       
    public static void main(String[] args)   
    {   
        try  
        {   
            MailClient client = new MailClient();   
            String server="mail.gmail.com";   
            String from="johndoe@gmail.com";   
            String to = "johndoe@gmail.com";   
            String subject="Test";   
            String message="Testing";   
           
            client.sendMail(server,from,to,subject,message);   
        }   
        catch(Exception e)   
        {   
            e.printStackTrace(System.out);   
        }   
           
    }   
}  


Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
	at javax.mail.Session.loadProvidersFromStream(Session.java:928)
	at javax.mail.Session.access$000(Session.java:174)
	at javax.mail.Session$1.load(Session.java:870)
	at javax.mail.Session.loadResource(Session.java:1084)
	at javax.mail.Session.loadProviders(Session.java:889)
	at javax.mail.Session.<init>(Session.java:210)
	at javax.mail.Session.getDefaultInstance(Session.java:299)
	at javax.mail.Session.getDefaultInstance(Session.java:339)
	at com.happy.mail.SendMail.send(SendMail.java:58)
	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软件!希望碰到这样问题的朋友都可以解决!


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

// 打开上面的文件夹,然后删除里面的mail文件夹,OK!
分享到:
评论

相关推荐

    出现Exception in threadmain java.lang.NoClassDefFoundError的各种可能情况.doc

    在Java编程中,遇到“Exception in thread 'main' java.lang.NoClassDefFoundError”是一种常见的异常情况,这通常意味着JVM在运行时未能找到指定的类定义。此错误不同于ClassNotFoundException,后者发生在尝试加载...

    flink on yarn 缺少依赖NoClassDefFoundError: com/sun/jersey

    flink-hadoop-compatibility_2.12-1.7.1.jar javax.ws.rs-api-2.0.1.jar jersey-common-2.27.jar ...Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig

    flink依赖jar包——解决NoClassDefFoundError: com/sun/jersey

    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...

    java.lang.NoClassDefFoundError

    Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message at com.bulktree.mail.SimpleMailTest.mail(SimpleMailTest.java:30) at com.bulktree.mail.SimpleMailTest.main(SimpleMailTest...

    Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/spark/SparkConf

    敲黑板 ,引入的依赖 一定要 “compile” 或则 “runtime”,否则spark conf 无法初始化,这辈子也运行不了,千万不要是 “provided”. org.apache.spark spark-sql_2.11 ${spark.jar.version} compile 在一个...

    java用户注册发送邮件

    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 原因是jar包版本不统一,解决方法如下: 删除Java EE 5 Libraries/javaee.jar/mail里的包有东西. 具体方法如下: 用...

    jface开发的几个包都在里面了

    Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class....

    javamail.jar

    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 原因是jar包版本不统一,解决方法如下: 删除Java EE 5 Libraries/javaee.jar/mail里的包有东西. 具体方法如下: ...

    android反编译dex2jar

    Exception in thread "main" java.lang.NoClassDefFoundError: pxb/android/dex2jar/v3/Main Caused by: java.lang.ClassNotFoundException: pxb.android.dex2jar.v3.Main at java.net.URLClassLoader$1.run...

    Java入门及faq__1(1)

    - **运行时错误**: `exception in thread "main" java.lang.NoClassDefFoundError` - 确认`classpath`中已加入`.`。 - 检查类名是否正确,大小写是否一致。 #### 三、Java基础知识解答 **3.1 "=="与"equals()"的...

    JDK1.6安装过程详解

    - `Exception in thread "main" java.lang.NoClassDefFoundError`:表示Java工具程序找不到指定的类,请确保指定的类存在于正确的路径中。 - `Exception in thread "main" java.lang.NoSuchMethodError: main`:...

    Java常见FQA.pdf

    11. 我在java xxx的时候显示"Exception in thread "main" java.lang.NoSuchMethodError: main"? 首先,在您的程序中每个Java文件有且只能有一个public类,这个类的类名必须和文件名的大小写完全一样。其次,在您要...

    java入门与加深FAQ.txt

    使用 `javax.*` 包时出现 “Exception in thread "main" java.lang.NoSuchMethodError: main” 错误的原因? 这种错误通常是由于试图运行的 Java 类没有正确定义 `public static void main(String[] args)` 方法。...

    java入门与加深.pdf

    而"Exception in thread "main" java.lang.NoSuchMethodError: main"错误则意味着缺少了主程序入口点——`public static void main(String[] args)`方法。 `package`是Java中的命名空间机制,用于避免类名冲突。...

Global site tag (gtag.js) - Google Analytics