用于创建 Excel 工作簿的 Java Apache POI 无法工作 (Linux)

问题描述 投票:0回答:1

我正在运行 AlmaLinux Linux 8.10 (Cerulean Leopard)

运行命令

java -version
给出:

openjdk version "1.8.0_432"
OpenJDK Runtime Environment (build 1.8.0_432-b06)
OpenJDK 64-Bit Server VM (build 25.432-b06, mixed mode)

我已经下载了 Apache POI .jar 文件(从 https://archive.apache.org/dist/poi/release/bin/ 中的 poi-bin-5.2.3-20220909.zip 中提取)。

然后我采用了

https://www.tutorialspoint.com/apache_poi/apache_poi_workbooks.htm
中的示例 Create Blank Workbook 创建了一个空白 Excel 文件:

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class CreateWorkBook {
    public static void main(String[] args)throws Exception {
        //Create Blank workbook
        XSSFWorkbook workbook = new XSSFWorkbook(); 

       //Create file system using specific name
       FileOutputStream out = new FileOutputStream(new File("createworkbook.xlsx"));

       //write operation workbook using file out object 
       workbook.write(out);
       out.close();
       System.out.println("createworkbook.xlsx written successfully");
    }
}

接下来我使用命令“编译”了程序

> javac -classpath /home/public/INFO/java_scripts/userlib/poi-5.2.3.jar:/home/public/INFO/java_scripts/userlib/poi-ooxml-5.2.3.jar CreateWorkBook.java

此步骤不会产生任何错误。接下来我就跑

> java CreateWorkBook

这会产生错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook
at CreateWorkBook.main(CreateWorkBook.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 1 more

从错误消息来看,失败的行是

XSSFWorkbook workbook = new XSSFWorkbook();
那么问题来了,为什么?

java excel apache-poi almalinux
1个回答
0
投票

文件

poi-bin-5.2.3-20220909.zip
包含 Apache Poi 使用的所有库和传递依赖项。所有这些库都需要在运行时包含在类路径中。

TutorialsPoint 网站在此页面(第 3 步)列出了类路径中所需的所有库。但是,如果使用

*
语法来包含指定目录中的所有
.jar
文件会更容易,因此要运行 Java 程序,您只需使用以下命令行:

java -cp 'poi-bin-5.2.3/*:poi-bin-5.2.3/lib/*:poi-bin-5.2.3/ooxml-lib/*:.' CreateWorkBook

注意

-cp
选项值用单引号引起来,因为我们不希望 shell 进行任何全局扩展。

© www.soinside.com 2019 - 2024. All rights reserved.