Java 包含清单文件的Jar文件已停止工作
我在过去创建的jar文件(Java 包含清单文件的Jar文件已停止工作,java,jar,noclassdeffounderror,Java,Jar,Noclassdeffounderror,我在过去创建的jar文件(xlimporter.jar)停止加载。MANIFEST.MF文件如下所示: Manifest-Version: 1.0 Created-By: 1.5.0 (Sun Microsystems Inc.) Main-Class: class/Client 尽管在.jar文件的文件夹/class/中有客户机类,但我总是会遇到以下错误: 线程“main”java.lang.NoClassDefFoundError中的异常:类/客户端(错误名称:客户端) 然而,当我在/cl
xlimporter.jar
)停止加载。MANIFEST.MF
文件如下所示:
Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: class/Client
尽管在.jar文件的文件夹/class/中有客户机类,但我总是会遇到以下错误:
线程“main”java.lang.NoClassDefFoundError中的异常:类/客户端(错误名称:客户端)
然而,当我在/class/文件夹中运行java客户机时,应用程序运行良好
Jar是几年前用32位编译器创建的。我的客户前段时间迁移到Windows 2003服务器。这就是原因吗?Jar文件在此之前正在加载 中,它指定主类使用:
主类:MyPackage.MyClass
因此,可能需要将“/”替换为“.”
如果类位于名为“class”的目录中,则需要将它们放入类包中“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...
}
这就是较新的清单的外观(Java6)
我猜Java5使用了不同的协议
尝试更改主类,如上图所示。它不起作用。实际上,Client.class
不属于任何包。这是一个非常简单的应用程序,有3-4个类。所有类都位于class
文件夹中。有什么想法吗?@xpanta如果类位于名为“class”的目录中,则需要将它们放入类包中。“class”在java中是一个关键字,因此不能将其用作包名。如果将文件夹名称改为“classes”,并在java文件中添加一个package语句,那么使用“.”而不是“/”来引用该类应该可以。不管怎么说,我的的确如此:)
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass