测试以前做的一个邮件发送类,出现以下问题:
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)
.........
类是以前做好测试好的类,怎么会出现这样问题呢?
网络时代第一想到就是到网络上找现成的答案。
于是找到以下两篇:
MyEclipse 编写java mail 时遇到 java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
和
关于java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream解决办法
这两个方法可以说当年那样做是可以的,但是,现在就不合时宜了!
比较以前和现在的工程,发现以前用的javaee6的库,现在用的是5的,差别就在这里。
然后把当前工程的javaee5库删除,加上6的,就通过了。
图示如下:
总结一下:
出现如题错误,在于用了错误的Java EE 5 Libraries,删掉它,用上图所示的Java EE 6 Libraries就没问题了,到上面摘录的两篇网文提到的深路径里去删东西是不可取的,切记!