尝试让我的程序使用java向我自己发送电子邮件,而且我很不成功。我一直收到与班级相关的错误
Exception in thread "main" java.lang.NoClassDefFoundError: javax/activation/DataHandler
at Running.main(Running.java:22)
。
Caused by: java.lang.ClassNotFoundException: javax.activation.DataHandler
我得到的错误就是这行代码:
Message msg = new MimeMessage(session);
答案 0 :(得分:0)
请参阅此行:java.lang.ClassNotFoundException: javax.activation.DataHandler
。这意味着无法在任何地方找到DataHandler
类,因此引发了异常。快速搜索后,我发现缺少的类属于JAF (activation.jar)。
基础知识:在编译期间搜索文件在哪里?
您在java编译期间指定的源目录。通常,这可以通过任何构建配置文件来完成,例如Maven为pom.xml
,Gradle为build.gradle
。
通常会在类路径中定义和存储依赖项。类路径是一系列目录(或zip文件),其中javac
编译器搜索未在任何源文件中定义的类。
通过将缺少的jar添加到类路径follow this for eclipse:
来取消阻止将javax.activation jar添加到您的类路径中,并检查这是否可以解决您的问题。
由于您尝试通过SMTP发送电子邮件,因此您可能希望将JavaMail (mail.jar)添加到类路径中,而另一个activation.jar
会因为传递依赖而自动添加。