Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 包含清单文件的Jar文件已停止工作_Java_Jar_Noclassdeffounderror - Fatal编程技术网

Java 包含清单文件的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

我在过去创建的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中的异常:类/客户端(错误名称:客户端)

然而,当我在/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