我在过去创建的一个jar文件(xl-importer.jar)停止加载。MANIFEST.MF文件如下所示:
Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: class/Client尽管在.jar文件的文件夹/类/中有Client类,但我总是得到这样的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: class/Client (wrong name: Client)
但是,当我在/class/文件夹中运行java Client时,应用程序运行正常。
Jar是几年前用32位编译器创建的。我的客户不久前迁移到了Windows 2003 Server。这就是原因吗?Jar文件是在此之前加载的。
发布于 2012-09-04 21:37:28
在java tutorials中,它指定Main-Class使用:
主类: MyPackage.MyClass
因此,您可能需要将"/“替换为”“。
如果类位于名为" class“的目录中,则需要将其放入类包中。" class“是java中的一个关键字,因此您不能将其用作包名。如果您将文件夹名称更改为其他名称,例如”class“,并在java文件中添加包语句,则使用".”引用该类。它应该可以工作,而不是一个"/“。我的也是这样:)例如:
清单:
Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: classes.ClientClient.java:
package classes;
public class Client{
//do code...
}发布于 2012-09-04 21:37:45
这是一个新的Manifest的样子(Java6)
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass我猜java5使用了不同的协议。
尝试更改主类,如下所示。
https://stackoverflow.com/questions/12264491
复制相似问题