为了账号安全,请及时绑定邮箱和手机立即绑定

Java - NoClassDefFoundError XSSFWorkbook

Java - NoClassDefFoundError XSSFWorkbook

慕尼黑的夜晚无繁华 2022-12-15 10:48:50
我创建 CSV 到 XLSX 应用程序 -我的第一个问题Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/xssf/usermodel/XSSFWorkbook        at com.test.csv2xlsx.Csv2Xlsx.<init>(Csv2Xlsx.java:35)        at com.test.csv2xlsx.Csv2Xlsx.main(Csv2Xlsx.java:49)Caused by: java.lang.ClassNotFoundException: org.apache.poi.xssf.usermodel.XSSFWorkbook        at java.net.URLClassLoader.findClass(Unknown Source)        at java.lang.ClassLoader.loadClass(Unknown Source)        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)        at java.lang.ClassLoader.loadClass(Unknown Source)        ... 2 more我阅读了有关此错误的所有文章,但我已经拥有所有依赖项<dependencies>        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml</artifactId>            <version>4.1.0</version>        </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi</artifactId>            <version>4.1.0</version>        </dependency>        <dependency>            <groupId>org.hamcrest</groupId>            <artifactId>hamcrest-core</artifactId>            <version>1.3</version>        </dependency>        <dependency>            <groupId>org.apache.xmlbeans</groupId>            <artifactId>xmlbeans</artifactId>            <version>3.1.0</version>        </dependency>        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml-schemas</artifactId>            <version>4.1.0</version>        </dependency>        <dependency>            <groupId>org.apache.commons</groupId>            <artifactId>commons-collections4</artifactId>            <version>4.3</version>        </dependency>    </dependencies>现在我不确定问题出在哪里
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

这是一个很常见的问题。您的项目的依赖项未包含在您执行的 jar 中,导致NoClassDefFoundError.


要解决此问题,请将其添加到plugins您的部分pom.xml:


<plugin>

    <groupId>org.apache.maven.plugins</groupId>

    <artifactId>maven-assembly-plugin</artifactId>

    <executions>

        <execution>

            <phase>package</phase>

            <goals>

                <goal>single</goal>

            </goals>

            <configuration>

                <archive>

                    <manifest>

                        <mainClass>

                            com.mypackage.Main

                        </mainClass>

                    </manifest>

                </archive>

                <descriptorRefs>

                    <descriptorRef>jar-with-dependencies</descriptorRef>

                </descriptorRefs>

            </configuration>

        </execution>

    </executions>

</plugin>

然后执行mvn clean package,当在目标目录中完成时,您将找到一个jar_name-jar-with-dependencies.jar包含所有必需依赖项的可执行文件。


最后干脆run java -jar jar_name-jar-with-dependencies.jar。


查看完整回答
反对 回复 2022-12-15
  • 1 回答
  • 0 关注
  • 332 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号