java mail jar冲突

开发环境:jdk1.6.0_25     MyEclipse-8.6     J2EE5

 

程序编译通过,J2EE5的库里面已经含有javaee.jar文件。里面的javax.mail包下面是java mail所需的类库。

一切,ok,但是运行的时候报错!信息如下:

 

java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream

 

原因如下:

J2EE5中mail包定义的只是接口,没有实现!
是不能真正发送邮件的!但开发编译肯定是可以过去的,因为我们是针对J2EE规范编的程序。
而运行期用Sun公司的JavaMail1.4的实现才可以开始发送邮件!

 

解决方案:

 

打开“C:\Program Files\Genuitec\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.6.0.me201007292038\data\libraryset\1.4”

 

 

java se project

将javamail1.4压缩包中的mail.jar和activation.jar放入到工程的classpath下。

java ee project

开发期不要导包,运行期将javamail1.4压缩文件中的mail.jar和activation.jar放入到tomcat"lib目录下,这样完全可以通过开发和运行。

=======================================================================

 

到这里,如果你是java se的项目,问题已经解决了!如果你是java ee项目,还会报错,信息如下:

   java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

 

原因如下:

JAVAEE5里面的javaee.jar里面的mail和我们放入的 mail.jar和activation.jar冲突

 

解决方案:

用winrar打开"C:\Program Files\Genuitec\Common\plugins\com.genuitec.eclipse.j2eedt.core_8.6.0.me201007292038\data\libraryset\EE_5"下面的javaee.jar,删除里面的mail目录!

 

=======================================================================

如果本地没有mail.jar和activition.jar,请从以下地址下载:

http://java.sun.com/products/javamail/downloads/index.html
http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html

posted @ 2014-07-25 10:38  哈特中尉  阅读(1621)  评论(0编辑  收藏  举报