当前位置: 首页 > 知识库问答 >
问题:

创建maven jar时的MigLayout ClassNotFoundException

柴意智
2023-03-14

我正在尝试为我的简单java gui应用程序创建一个jar文件。我正在使用Intellij IDEA和maven。我已经将Mig Layout作为maven依赖项导入,当我在Intellij IDEA中运行程序时,一切正常,但当我通过执行mvn clean install或mvn clean package创建jar时,尽管maven说构建成功,但当我尝试打开jar文件时,我会得到以下堆栈跟踪(我相信这是堆栈跟踪)。线程“AWT-EventQueue-0”java中的image Stacktrace异常。lang.NoClassDefFoundError:net/miginfocom/swing/MigLayout at BotGui。

这是我在maven的依赖项。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ptcontact.testdiscord</groupId>
    <artifactId>Discord_Bot</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.miglayout</groupId>
            <artifactId>miglayout-swing</artifactId>
            <version>5.0</version>
        </dependency>

        <dependency>
            <groupId>net.dv8tion</groupId>
            <artifactId>JDA</artifactId>
            <version>3.8.0_436</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>jcenter</id>
            <name>jcenter-bintray</name>
            <url>https://jcenter.bintray.com</url>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <target>8</target>
                    <source>8</source>
                </configuration>
            </plugin>
            <plugin>
                <!-- Build an executable JAR -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>BotGui</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.7.1</version>
            </plugin>
        </plugins>
    </build>

</project>

是的,我已经试用了5.0、4.2和5.2版。此外,我还尝试将miglayout核心添加为依赖项,但这并没有改变任何事情。

共有1个答案

叶富
2023-03-14

我解决了问题!正如@CrazyCoder所说,我需要创建一个胖Jar,换句话说,我需要在Jar文件中包含依赖项。因为我是一个初学者,所以我认为maven会自动为你做到这一点,哦,好吧。

为了制作一个脂肪罐,我遵循以下指南:http://tutorials.jenkov.com/maven/maven-build-fat-jar.html

 类似资料:
  • 如果我要创建一个数组,并用值初始化它,我会这样做 我想对ArrayList做同样的事情,并有类似的东西 上面这行代码不行,我理解。我试图传达我希望实现的目标。有没有办法在Java做到这一点,而不必做像 或者

  • 创建时间Created Created可以让您在数据插入到数据库时自动将对应的字段设置为当前时间,需要在xorm标记中使用created标记,如下所示进行标记,对应的字段可以为time.Time或者自定义的time.Time或者int,int64等int类型。 type User struct { Id int64 Name string CreatedAt time.Ti

  • 我为函数分配了128MB内存,这真的不足以简单地获取凭据并实例化AmazonS3Client对象吗? 我尝试给AmazonS3Client构造函数 以及 编辑1如果我将分配给函数的内存增加到192MB,它就可以正常工作,尽管奇怪的是,报告在cloudwatch日志中只使用59MB内存。我只是失去了剩下的记忆吗?

  • 我是AWS新手,尝试通过参考他们的演示来构建模型(从web控制台)。然而,当我尝试创建模型时,它给出了以下错误。 无法访问位于bucket\u namemodel\u name

  • 我正在将accesstoken与文档数据一起发送,但收到此错误。我发送单据数据的顺序是否正确

  • 我正在做一个问答游戏,它将从一个文本文件中阅读一些问题和它们各自的答案。这些问题首先被放入一个ArrayList,然后每个问题都要被转换成一个单独的问题对象。正是在程序的这一部分中,我接收到一个IndexOutOfBoundsException。 文本文件的格式如下: 问题 正确答案 错误答案1 错误答案2 错误答案3 (空行) 问题2 ... ... ... 文本文件在名为IO的类中使用Buff