java.lang.NoClassDefFoundError: javax/mail/Address error

java.lang.NoClassDefFoundError: javax/mail/Address error

我的项目 mail.jarlib 文件夹中。我创建了一个清单文件

Manifest-Version: 1.0
Main-Class: mainfile
Class-Path: lib/mail.jar

然后我使用 eclipse 导出了 jar 文件。

我现在尝试以 java -jar myjar.jar 的身份执行 jar 文件,但出现错误

java.lang.NoClassDefFoundError: javax/mail/Address

任何指点将不胜感激

  1. 在您的 class 路径中添加 mail.jar
  2. 确保您的 class 路径中没有拼写错误。
  3. 检查导出的 jar 文件,是否所有必需的 jar 文件都已提供,否则您必须使用 eclipse 选项 Extract required libraries into generated JAR

来自 Oracle documentation:

The text file must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.

所以它应该看起来像这样:

Manifest-Version: 1.0
Class-Path: lib/mail.jar
Created-By: 1.7.0_06 (Oracle Corporation)

此外,请确保您的 MANIFEST.MF 在 META-INF 文件夹中。

在我的例子中,类路径已更新,但缺少新的类路径 mail.jar 和 activation.jar


所以linking/copying

  1. mail.jar
  2. activation.jar

进入类路径 lib 目录可能是解决方案之一。