0

我在过去创建的 jar 文件 ( xl-importer.jar) 停止加载。该MANIFEST.MF文件如下:

Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: class/Client

尽管Client.jar 文件中的文件夹 /class/ 中有类,但我总是收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: class/Client (wrong name: Client)

但是,当我java Client在 /class/ 文件夹中运行时,应用程序运行良好。

Jar 是几年前使用 32 位编译器创建的。我的客户前段时间迁移到 Windows 2003 Server。是这个原因吗?在此之前加载 Jar 文件。

4

2 回答 2

1

java 教程中,它指定 Main-Class 指定为:

主类:MyPackage.MyClass

因此,您可能需要将“/”替换为“。”

如果该类位于名为“class”的目录中,则需要将它们放入类包中。“class”是java中的一个关键字,所以你不能用它作为包名。如果您将文件夹名称更改为其他名称,例如“classes”,并在您的 java 文件中添加一个 package 语句,则使用“.”引用该类。而不是“/”它应该工作。无论如何,它与我的:) 例如

显现:

Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: classes.Client

客户端.java:

package classes;

public class Client{

//do code...

}
于 2012-09-04T13:37:28.470 回答
1

这就是较新的 Manifest 的样子(java 6)

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass

我的猜测是 java 5 使用了不同的协议。

尝试更改主类,如上所示。

于 2012-09-04T13:37:45.367 回答