我制作了一个小型桌面应用程序,并使用MySQL连接器处理数据库。之前我已经将MySQL连接器添加到类路径中。
之后,我添加了mysql连接器依赖项:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.29</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

构建是成功的,但是当我从命令行启动.jar文件时,会出现以下错误:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

当我用java -cp mysql-connector-java-5.1.29.jar -jar NameOfJar.jar启动程序时,没有问题,程序正常启动,但理想情况下,我希望“打包”连接器或有一个“lib”文件夹,而不是键入java -cp mysql [...](双击文件打开应用程序)。
谢谢,
超速301

最佳答案

或者,也可以使用遮光罩插件:

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <configuration>
                    <createDependencyReducedPom>false</createDependencyReducedPom>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <excludes>
                                    <exclude>org.slf4j*</exclude>
                                </excludes>
                            </artifactSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

它创建了一个附加的jar,除了上面的示例(org.slf4j*)中显式排除的依赖项之外,它包含所有依赖项。请注意,这将用包含所有依赖项的胖jar替换常规jar。如果两者都需要,应该使用maven程序集

07-24 09:48
查看更多