首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包含清单文件的Jar文件已停止工作

包含清单文件的Jar文件已停止工作
EN

Stack Overflow用户
提问于 2012-09-04 21:26:40
回答 2查看 101关注 0票数 0

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

代码语言:javascript
运行
复制
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文件是在此之前加载的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-04 21:37:28

java tutorials中,它指定Main-Class使用:

主类: MyPackage.MyClass

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

如果类位于名为" class“的目录中,则需要将其放入类包中。" class“是java中的一个关键字,因此您不能将其用作包名。如果您将文件夹名称更改为其他名称,例如”class“,并在java文件中添加包语句,则使用".”引用该类。它应该可以工作,而不是一个"/“。我的也是这样:)例如:

清单:

代码语言:javascript
运行
复制
Manifest-Version: 1.0
Created-By: 1.5.0 (Sun Microsystems Inc.)
Main-Class: classes.Client

Client.java:

代码语言:javascript
运行
复制
package classes;

public class Client{

//do code...

}
票数 1
EN

Stack Overflow用户

发布于 2012-09-04 21:37:45

这是一个新的Manifest的样子(Java6)

代码语言:javascript
运行
复制
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: MyPackage.MyClass

我猜java5使用了不同的协议。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12264491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档