我创建了一个包含主类及其依赖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
答案 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