运行jar时获得运行时异常

时间:2013-12-13 17:51:23

标签: java exception jar executable

我创建了一个包含主类及其依赖jar的jar文件。 我编写了自己的清单,以便我也可以包含依赖项。 当我尝试运行jar文件时出现问题;它给了我以下内容:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Workbook

这是文件夹结构

ExcelCopy.jar
|
|-com/utility/ExcelFormat.java
|
|-lib/poi-3.9.jar
|
|-META-INF/Manifest.mf

Manifest.mf内容

Manifest-Version: 1.0
Class-Path: lib/poi-3.9jar
Created-By: 1.7.0_25 (Oracle Corporation)
Main-Class: com.utility.ExcelFormat

2 个答案:

答案 0 :(得分:2)

您无需在ExcelCopy.jar中捆绑lib / poi-3.9.jar。将其从JAR中删除,然后您将拥有:

ExcelCopy.jar
|
|-com/utility/ExcelFormat.java
|-META-INF/Manifest.mf

然后你有:

ExcelCopy.jar
lib/poi-3.9jar

运行“java -jar ExcelCopy.jar”应该可以工作。

答案 1 :(得分:0)

Thanx @shuang。我尝试过简单的逻辑并且有效 我从poi-3.9.jar中提取了所需的类,所以现在我有一个文件夹调用org,其中包含所有必需的类。

ExcelCopy.jar
|
|----com/utility/ExcelFormat.java
|
|----org/apache(long dir structure)
|
|----META-INF/Manifest.mf

Manifest.mf

的内容
Manifest-Version: 1.0
Class-Path: org
Main-Class: com.utility.ExcelFormat

现在我的罐子正在运行。 :d