測試以前做的一個郵件發送類,出現以下問題:
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)
.........
類是以前做好測試好的類,怎麼會出現這樣問題呢?
網絡時代第一想到就是到網絡上找現成的答案。
于是找到以下兩篇:
<a href="http://my.oschina.net/hsm/blog/108389" target="_blank">MyEclipse 編寫java mail 時遇到 java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream</a>
和
<a href="http://blog.csdn.net/5iasp/article/details/5935428" target="_blank">關于java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream解決辦法</a>
這兩個方法可以說當年那樣做是可以的,但是,現在就不合時宜了!
比較以前和現在的工程,發現以前用的javaee6的庫,現在用的是5的,差别就在這裡。
然後把目前工程的javaee5庫删除,加上6的,就通過了。
圖示如下:

總結一下:
出現如題錯誤,在于用了錯誤的Java EE 5 Libraries,删掉它,用上圖所示的Java EE 6 Libraries就沒問題了,到上面摘錄的兩篇網文提到的深路徑裡去删東西是不可取的,切記!
本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/xiandedanteng/p/4132201.html,如需轉載請自行聯系原作者