Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的程序在IntelliJ中完美地工作,但是当我用Maven构建它时,我得到了NoClassDefFoundError_Java_Maven_User Interface_Intellij Idea_Build - Fatal编程技术网

Java 我的程序在IntelliJ中完美地工作,但是当我用Maven构建它时,我得到了NoClassDefFoundError

Java 我的程序在IntelliJ中完美地工作,但是当我用Maven构建它时,我得到了NoClassDefFoundError,java,maven,user-interface,intellij-idea,build,Java,Maven,User Interface,Intellij Idea,Build,我的主要类是LoginGUI,看起来像这样(这是一个更大的类,但其他代码与我的问题无关): } 当我尝试运行通过在Maven中构建项目而获得的jar文件时(无论我是在IntelliJ中使用Maven集成还是使用终端,结果都是一样的),我得到以下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/HibernateException at usermanagement.

我的主要类是LoginGUI,看起来像这样(这是一个更大的类,但其他代码与我的问题无关):

}

当我尝试运行通过在Maven中构建项目而获得的jar文件时(无论我是在IntelliJ中使用Maven集成还是使用终端,结果都是一样的),我得到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/HibernateException
    at usermanagement.LoginGUI.<init>(LoginGUI.java:30)
    at usermanagement.LoginGUI.main(LoginGUI.java:93)
Caused by: java.lang.ClassNotFoundException: org.hibernate.HibernateException
    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
线程“main”java.lang.NoClassDefFoundError中的异常:org/hibernate/HibernateException 在usermanagement.LoginGUI.(LoginGUI.java:30) 位于usermanagement.LoginGUI.main(LoginGUI.java:93) 原因:java.lang.ClassNotFoundException:org.hibernate.hibernateeException 位于java.net.URLClassLoader.findClass(未知源) 位于java.lang.ClassLoader.loadClass(未知源) 位于sun.misc.Launcher$AppClassLoader.loadClass(未知源) 位于java.lang.ClassLoader.loadClass(未知源) ... 还有两个 第30行是我的构造函数中的第一行(带有CourseDatabaseManager的那一行),但我确信这不是问题所在,因为如果我删除那一行,它会抱怨下一行,即使构造函数完全为空,也会给我一个错误

第93行是main方法中的这一行:frame.setContentPane(newlogingui().panel)

我假设这就是导致问题的原因,但我不知道为什么,特别是当我点击IntelliJ中的run按钮时,它工作了,所以我不确定为什么用Maven构建它时它不工作?但我对Maven是个新手,所以我肯定我做错了什么

我试着查找这个问题,我发现我应该更改我的pom文件,我确实这样做了,但问题仍然存在。 在这里您可以看到我的pom.xml(没有依赖项,我不想发布太多代码):


4.0.0
com.whydontyouwork
工作人员
1.0-快照
罐子
org.apache.maven.plugins
maven编译器插件
3.8.1
8.
8.
org.apache.maven.plugins
maven依赖插件
3.1.2
复制依赖项
包裹
复制依赖项
${project.build.directory}/alternateLocation
假的
假的
真的
org.apache.maven.plugins
maven jar插件
3.2.0
真的
解放党/
usermanagement.LoginGUI
1.6
1.6
有谁能帮助我构建我的项目,这样我就可以得到一个jar文件,我可以点击它,它就可以简单地启动了?我不在乎是Maven还是IntelliJ在做艰苦的工作,但因为我有很多依赖者,我认为它必须是Maven。谢谢你的帮助,谢谢


我发现这个线程有一些可能的原因/解决方案,但我不确定从哪里开始。

乍一看,您的依赖项中缺少了hibernate核心。乍一看,您的依赖项中似乎缺少了hibernate核心。
Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/HibernateException
    at usermanagement.LoginGUI.<init>(LoginGUI.java:30)
    at usermanagement.LoginGUI.main(LoginGUI.java:93)
Caused by: java.lang.ClassNotFoundException: org.hibernate.HibernateException
    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
<?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.whydontyouwork</groupId>
<artifactId>WorkPls</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.2</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                    </configuration>
                </execution>
            </executions>
        </plugin>


        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>
                            usermanagement.LoginGUI
                        </mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

<properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
</properties>