java.lang.NoClassDefFoundError:javax/mail/MessaginException未解决

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

我正试图将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.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