7

我一直在开发一个程序,该程序使用 Javamail API 根据时间事件和某些条件发送电子邮件。该程序在 Eclipse(最新版本)中完美运行,并且 javamail 和 activator 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`

谢谢您的帮助。

4

2 回答 2

11

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

Class-Path: lib/javamail.jar
于 2013-02-23T00:42:10.627 回答
0

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

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

于 2013-04-23T19:12:12.543 回答