Java 异常NoClassDefFoundError

Java 异常NoClassDefFoundError,java,jar,jakarta-mail,Java,Jar,Jakarta Mail,我一直在开发一个邮件应用程序,我想把它压缩成一个.jar文件,这样用户就可以双击运行了。我正在使用javamail API。在eclipse中,我“添加了外部jar”并添加了mail.jar文件,在eclipse中开发时,我能够使用mail.jar中的所有类。现在我想将它们打包到一个jar文件中,因此我在命令行中使用了-jar工具,并指定了一个清单文件和我的所有类文件,但是当我运行jar时,出现了以下异常: Exception in thread "main" java.lang.NoCl

我一直在开发一个邮件应用程序,我想把它压缩成一个.jar文件,这样用户就可以双击运行了。我正在使用javamail API。在eclipse中,我“添加了外部jar”并添加了mail.jar文件,在eclipse中开发时,我能够使用mail.jar中的所有类。现在我想将它们打包到一个jar文件中,因此我在命令行中使用了-jar工具,并指定了一个清单文件和我的所有类文件,但是当我运行jar时,出现了以下异常:

   Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Multipart
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getMethod0(Unknown Source)
    at java.lang.Class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: javax.mail.Multipart
    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)
    ... 6 more

我知道这与mail.jar不在jar文件中有关,我尝试将mail.jar文件包含到我的应用程序中,但没有任何效果。我能做什么?

如何运行应用程序?如果通过命令行运行应用程序,则应将所需的JAR(用分号分隔)添加到应用程序的类路径中,如下所示:

java-cp-mail.jar;其他的是你的主要课程


如果您希望所有内容都包含在一个jar文件中,以便双击该jar文件并运行应用程序,那么您有两个主要选择:

  • 从要包含的jar文件中提取所有内容,将它们与应用程序合并,并使用合并的内容创建一个新的jar文件。别忘了,除了.class文件之外,还有其他重要的文件。我不是Eclipse专家,但我知道Eclipse的一些实现方法只包括.class文件,这是行不通的

  • 使用诸如的工具,它允许您在jar文件中“嵌套”jar文件


  • 祝你好运

    您可能已“尝试”,但尚未成功地将mail.jar添加到类路径中。