沐兮婉清 2011-03-11 00:50
浏览 292
已采纳

关于javamail的问题

我在开发一个网络系统,基于java EE框架。系统中要用到发送邮件的功能,用到了javax.mail包(这个包在java EE的库里面有)。写代码的时候没什么问题,可是发布到tomcat中运行的时候,当发送邮件的时候总是会抛出异常,说找不到javax.mail.authenticator这个类,可是这个类明明是包含在javax.mail这个包中的,为什么它找不到呢?后来,我把mail.jar和authenticator.jar这两个文件放到/WEB-INT/lib目录下,然后重新运行后就能正常的发送邮件了,这是为什么呢?我知道放到/WEB-INT/lib目录下后系统运行的时候可以找到这两个文件,困扰我的是为什么我的项目包含的library明明有javax.mail包,为什么就不能用里面的javax.mail.authenticator类?

谁知道具体的原因么?求交流...judezhan@gmail.com

  • 写回答

3条回答 默认 最新

  • changchanghust 2011-03-11 02:41
    关注

    tomcat默认是不包含这两个包的。
    你看到的项目包含的library应该是你项目编译环境下包含的包而已,即javac编译时,-classpath指定的类路径下包含了这两个包,这样使得你的代码能通过编译。
    tomcat在运行你的项目时,也有它自己的类路径,那两个包没有出现在tomcat的类路径中,所以抛异常说找不到类。/WEB-INF/lib是tomcat会寻找的类路径之一,所以把这两个包拷到这个目录后可以正常的运行了。
    至于这两个包为什么没有跟着其他包一起发布到你的tomcat环境下,具体要查一下你的发布工具了,如ant,maven等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样