1. 程式人生 > >Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger解決方法

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger解決方法

今天用MailUitl工具類傳送郵件報如下錯誤。。。

錯誤提示:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
	at javax.mail.Session.initLogger(Session.java:230)
	at javax.mail.Session.<init>(Session.java:214)
	at javax.mail.Session.getInstance(Session.java:251)
	at com.ssm01.util.MailUtil.sendMail(MailUtil.java:42)
	at com.ssm01.util.MailUtil.main(MailUtil.java:69)
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 5 more

解決方案:

原來的pom.xml mail的依賴

 <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.5.6</version>
        </dependency>

改為:

       <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

或改為: 

        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.6.0</version>
        </dependency>

或改為:

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>javax.mail-api</artifactId>
            <version>1.5.5</version>
        </dependency>
        <dependency>
            <groupId>com.sun.mail</groupId>
            <artifactId>javax.mail</artifactId>
            <version>1.5.5</version>
        </dependency>

可能原因:

com.sun.mail.util。MailLogger是JavaMail API的一部分。它已經包含在EE環境中(這就是為什麼您可以在您的活動伺服器上使用它),但是它沒有包含在SE環境中。

JavaMail API是可選的包,可與Java SE平臺一起使用,Java EE平臺中也包含了JavaMail API。

 javax。mail-api工件只適合於編譯。您實際上需要執行程式碼,因此需要JavaMail的完整實現。

參考文章:https://stackoverflow.com/questions/16807758/java-lang-noclassdeffounderror-com-sun-mail-util-maillogger-for-junit-test-case