AlmaLinux下使用Apache POI创建Excel工作簿失败问题排查
解决Java运行时找不到Apache POI类的问题
错误原因
编译时你通过-classpath参数让javac找到了Apache POI的类文件,所以编译顺利完成,但运行java命令时没有指定同样的类路径,导致JVM无法加载XSSFWorkbook所在的jar包,从而抛出NoClassDefFoundError。编译阶段的类路径仅作用于编译过程,和运行阶段的类路径是相互独立的。
解决方案
运行程序时必须在java命令中指定包含POI jar包的类路径,同时要包含当前目录(.),因为编译生成的CreateWorkBook.class文件在当前目录下:
java -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
额外提示
Apache POI 5.2.3依赖多个第三方jar包(比如commons-codec、commons-collections4等),这些jar包都在你解压的poi压缩包的lib目录下。如果后续运行仍出现类找不到的错误,可以用通配符一次性加入目录下所有jar包,避免遗漏依赖:
java -classpath .:/home/public/INFO/java_scripts/userlib/* CreateWorkBook
内容的提问来源于stack exchange,提问作者Chazg76
相关产品推荐
相关产品推荐

