Error: Unable to initialize main class AirMail Caused by: java.lang.NoClassDefFoundError: javax/mail/Authenticator

Error: Unable to initialize main class AirMail Caused by: java.lang.NoClassDefFoundError: javax/mail/Authenticator

我正在使用 Swing、AWT 和 Mail API 创建一个 Java 应用程序,其名称是 AirMail。 发送带有附加文件功能的电子邮件,此电子邮件服务由 Gmail (Google) 提供。

我通过 jar -cvmf manifest.mf AirMail.jar 命令在命令行上创建了它的 jar 文件。 所以,我在启动 jar 文件时遇到错误。 错误:

Unable to initialize main class AirMail Caused by: java.lang.NoClassDefFoundError: javax/mail/Authenticator

因为,上面的错误是 javax/mail/Authenticator 中的 NoClassDefFoundError。 我检查了一下,邮件 API 中是否存在 javax/mail/Authenticator class。 并且,是的,它存在。

通常,我们需要在manifest.mf文件中提供Main-Class值,我检查了我的Manifest.mf 文件并添加它的 Main-Class 值以及这个我已经在 Manifest.mf 文件的末尾留下了一个空行。

Manifest.mf 文件的内容

我正在为我的 AirMail.java 代码提供 link。

https://github.com/thesumitsuryawanshi/Air-Mail/blob/master/AirMail.java

我正在使用 Ubuntu 18.04“64 位”

任何帮助!! 要么 关于我的问题的额外知识将不胜感激。!! 谢谢!!

AFIK javax.mail 包不是 Java 11 的一部分。您需要将其添加为项目的依赖项。

对于 Maven,这可以工作

<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>