java.lang.NoClassDefFoundError:javax / mail / MessagingException

我一直在研究一个使用 Javamail API根据时间事件和某些条件发送电子邮件的程序.该程序在 Eclipse(最新版本)中运行完美,javamail和激活器jar在构建路径中,javamail的依赖项也是如此.当我将项目导出为jar并尝试运行它时,会出现问题. (生成的堆栈跟踪与Eclipse构建路径中缺少javamail jar时的堆栈跟踪相同).

堆栈跟踪如下:

`Exception in thread "Timer-1" java.lang.NoClassDefFoundError: javax/mail/MessagingException
at SpaceCheck.HourlySpaceAlerts(SpaceCheck.java:212)
at WarningReports.run(WarningReports.java:21)
at java.util.TimerThread.mainLoop(UnkNown Source)
at java.util.TimerThread.run(UnkNown Source)
Caused by: java.lang.classNotFoundException: javax.mail.MessagingException
at java.net.urlclassloader$1.run(UnkNown Source)
at java.net.urlclassloader$1.run(UnkNown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.urlclassloader.findClass(UnkNown Source)
at java.lang.classLoader.loadClass(UnkNown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(UnkNown Source)
at java.lang.classLoader.loadClass(UnkNown Source)
... 4 more`

谢谢您的帮助.

解决方法

假设您将javamail和其他依赖项放在相对于导出的jar的lib /文件夹中,则必须在清单文件中声明这些jar:
Class-Path: lib/javamail.jar

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...