在jar中包含导入的库

时间:2018-11-17 00:19:36

标签: java jar manifest

在没有IDE的情况下找不到方法(到目前为止,没有一个)。

我有几个导入到代码中的库,下面是一些示例。

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

我具有以下文件结构:

  • root dir = RackSerials
    • sub dir lib -所有.jar导入文件 包含
    • sub dir tdms -我所有的.class文件

我尝试在清单中包含所有.jar文件

Main-Class: tdms.rackserials
Class-Path: lib.commons-collections4-4.2.jar lib.commons-compress-1.18.jar lib.json-20180813.jar lib.json-simple-1.1.1.jar lib.poi-4.0.0.jar lib.poi-ooxml-4.0.0.jar lib.poi-ooxml-schemas-4.0.0.jar lib.xmlbeans-3.0.1.jar

但是,如果我将JAR移至另一台计算机(未安装必需的库),则会出现以下错误:

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

我在另一个线程中找到了此注释。.那么,如何包括那些其他JAR文件(导入的库)以使我的程序包可移植?

  

注意:Class-Path标头指向该目录中的类或JAR文件   本地网络,而不是JAR文件中的JAR文件或可访问的类   通过Internet协议。在JAR内的JAR文件中加载类   文件放入类路径,您必须编写自定义代码以加载那些   类。例如,如果MyJar.jar包含另一个名为   MyUtils.jar,您不能使用MyJar.jar的Class-Path标头   清单以将MyUtils.jar中的类加载到类路径中。

0 个答案:

没有答案