java.lang.NoClassDefFoundError:javax/mail/MessaginException未解决
我正试图将javax.mail jar添加到我的类路径中,但出现以下错误:java.lang.NoClassDefFoundError:javax/mail/MessaginException未解决,java,maven,jakarta-mail,Java,Maven,Jakarta Mail,我正试图将javax.mail jar添加到我的类路径中,但出现以下错误: java.lang.NoClassDefFoundError: javax/mail/MessagingException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663) at java.lang
java.lang.NoClassDefFoundError: javax/mail/MessagingException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663)
at java.lang.Class.getDeclaredConstructors(Class.java:2012)
at org.springframework.beans.factory.annotation.
我在另一篇文章中读到,将dependecy添加到pom.xml中是可以修复的,所以我这样做了:
pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
javax.mail
邮件
1.4.3
但是我还是发现了错误。有人能帮我解决这个问题吗?Java Mail API的最新版本是
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.2</version>
</dependency>
javax.mail
javax.mail-api
1.5.2
此版本中是否存在相同的错误?版本1.4中已存在
javax/mail/MessaginException
。所以我想这只是IDE中的一个组装问题。刷新pom依赖项并检查IDE构建的工件就足够了。同样,对于1.4.3版本,不再有称为mail的工件id。如果要使用1.4.3,则应使用此依赖项
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.4.3</version>
</dependency>
javax.mail
梅拉皮
1.4.3
这个类已经出现在我使用过的所有版本的Javamail中。很明显,与任何其他ClassNotFoundException一样,您的类路径上没有Javamail JAR。您通过使用maven和在eclipse中手动添加引用来混合类路径
禁用“maven nature”,在命令行上创建一个mvn eclipse:clean
刷新项目并将其转换为maven项目
,然后重试
clearify:您在pom中哪里添加了邮件api?在
或下,您应该将jar添加到服务器Tomcat中
开放式发射配置
添加外部jar(查找您的电子邮件jar)
就连我也面临着类似的错误。尝试以下两个步骤(此处已经推荐了第一个步骤)——
1.将依赖项添加到您的pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
javax.mail
邮件
1.4.3
如果不起作用,请手动将jar
文件放在.m2\repository\javax\\\
目录中
您将使用maven依赖插件
将项目依赖项复制到其他地方
将其添加到pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.mkyong.core.App</mainClass>
<classpathPrefix>dependency-jars/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dependency-jars/
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
这对我有用。
来源:我在javax.mail.Activator类中遇到了类似的问题。解决方案是从warjavax.mail和javax.activation中删除并将其添加到{tomcat}\lib文件夹中尝试清除项目并重建它。@Jens完成!但是仍然会出现同样的错误。我没有使用IDE,所以我不能发表评论,但我的答案仍然存在。这个异常证明了这一点。其他用户已经提到了-找不到该类,因为它可能不是由IDE组装的。尝试检查IDE构建的工件。还要尝试清理、重建、取消部署和部署应用程序等。何时会出现此错误?如果您使用tomcat运行代码,您应该检查邮件jar是否可以被tomcat访问,即它应该位于war\WEB-INF\lib或shared\lib文件夹中。当服务器启动@VanVal时,我发现了错误,那么您的服务器似乎找不到邮件jar。如果您的服务器是tomcat,在您的war被tomcat在webapps下分解后,请将其放在以下位置:webapps\\WEB-INF\lib,并检查错误是否重复。“返回兼容性”他们说
manifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.6.0_35
Class-Path: dependency-jars/log4j-1.2.17.jar
Created-By: Apache Maven
Main-Class: com.mkyong.core.App
Archiver-Version: Plexus Archiver