如何修复Maven中的运行时NoClassDefFound错误

时间:2019-05-11 13:40:23

标签: java macos maven

我正在建立一个Maven项目,并希望能够从命令行运行该程序。

我尝试添加一个编译范围

对不起,一直收到垃圾邮件通知,因此pom.xml在这里:

Command Line: java -jar ~/Downloads/Excel-Finder-1.0-SNAPSHOT.jar

https://pastebin.com/Q5csyESc

我希望程序在终端(或类似版本)中运行,但实际输出是错误: 错误:无法初始化主类me.harry0198.excelfinder.Main 造成原因:java.lang.NoClassDefFoundError:org / apache / poi / openxml4j / exceptions / InvalidFormatException

1 个答案:

答案 0 :(得分:0)

我使用了错误的Maven插件。要解决此问题,请使用maven-shade-plugin并将依赖项重新定位到您的路径,例如:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <relocations>
                                <relocation>
                                    <pattern>org.apache.poi</pattern>
                                    <shadedPattern>me.harry0198.excelfinder</shadedPattern>
                                </relocation>
                            </relocations>
                        </configuration>
                    </execution>
                </executions>
            </plugin>