Java 我的程序在IntelliJ中完美地工作,但是当我用Maven构建它时,我得到了NoClassDefFoundError
我的主要类是LoginGUI,看起来像这样(这是一个更大的类,但其他代码与我的问题无关): } 当我尝试运行通过在Maven中构建项目而获得的jar文件时(无论我是在IntelliJ中使用Maven集成还是使用终端,结果都是一样的),我得到以下错误: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.
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>