带有清单文件的Jar文件停止工作

时间:2012-09-04 13:26:40

标签: java jar noclassdeffounderror

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

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

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

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

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

Jar是几年前使用32位编译器创建的。我的客户不久前搬到了Windows 2003 Server。这是什么原因? Jar文件在此之前加载。

2 个答案:

答案 0 :(得分:1)

java tutorials中,它指定Main-Class指定为:

  

Main-Class:MyPackage.MyClass

所以可能需要更换" /"用"。"

如果该类位于名为" class"的目录中。他们需要放在课程包中。的"类"是java中的关键字,因此您无法将其用作包名。如果您将文件夹名称更改为其他名称,例如" classes",并添加包语句你的java文件,然后使用"引用该类。"而不是" /"它应该工作。无论如何它确实与我有关:)

清单:

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

Client.java:

package classes;

public class Client{

//do code...

}

答案 1 :(得分:1)

这是一个较新的Manifest(java 6)

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

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

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