java - 带有 list 文件的 Jar 文件停止工作

标签 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 类,但我总是收到此错误:

线程“main”java.lang.NoClassDefFoundError中出现异常:class/Client(错误名称:Client)

但是,当我在/class/文件夹内运行 java Client 时,应用程序运行良好。

Jar 是几年前用 32 位编译器创建的。我的客户不久前迁移到 Windows 2003 Server。是这个原因吗?在此之前已加载 Jar 文件。

最佳答案

java tutorials它指定 Main-Class 是用 :

指定的

Main-Class: MyPackage.MyClass

因此您可能需要将“/”替换为“.”

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

list :

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

客户端.java:

package classes;

public class Client{

//do code...

}

关于java - 带有 list 文件的 Jar 文件停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12264491/

相关文章:

java - 使用 Bluecove 编译和运行 Java 应用程序时出现问题 (NoClassDefFoundError)

java - java中使用break来停止移动的线

java - 在 SELECT 查询中从 JOIN 复制 BLOB 值是否会显着影响性能?

jar - 能够在没有JDK的情况下在不同的计算机上运行java应用程序

java - 如果我将扩展 Activity 更改为 OrmLiteBaseActivity<Helper> 我得到一个 java.lang.NoClassDefFoundError

OSGi:如何确保类路径的一致性?

java - JDBC 连接和语句类

java - 为什么 Spring 中的 RestTemplate 必须传递参数名称

java - 即使添加到构建路径并清理后也无法解决导入问题

hadoop - vertica jar