java.lang.NoClassDefFoundError:javax / mail / MessagingException

时间:2013-02-23 00:33:18

标签: java javamail noclassdeffounderror

我一直致力于使用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`

感谢您的帮助。

2 个答案:

答案 0 :(得分:11)

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

Class-Path: lib/javamail.jar

答案 1 :(得分:0)

您还可以通过在此网址添加一个软件REPO来获取Java EE库。

http://download.eclipse.org/tools/orbit/downloads/