Java 马文:“我不知道。”;NoClassDefFoundError:com/jogamp/newt/event/KeyListener";
我试图在Maven项目中使用外部jar JOGL和GlueGen。构建过程可以工作,但当我执行jar时,会收到以下错误消息:Java 马文:“我不知道。”;NoClassDefFoundError:com/jogamp/newt/event/KeyListener";,java,maven,jar,noclassdeffounderror,Java,Maven,Jar,Noclassdeffounderror,我试图在Maven项目中使用外部jar JOGL和GlueGen。构建过程可以工作,但当我执行jar时,会收到以下错误消息: Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/newt/event/KeyListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.
Exception in thread "main" java.lang.NoClassDefFoundError: com/jogamp/newt/event/KeyListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
at com.jaamsim.ui.GUIFrame.main(GUIFrame.java:1995)
Caused by: java.lang.ClassNotFoundException: com.jogamp.newt.event.KeyListener
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)
... 13 more
这是我的pom.xml
<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>JaamSim</groupId>
<artifactId>JaamSim</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<nd4j.version>1.0.0-beta2</nd4j.version>
<dl4j.version>1.0.0-beta2</dl4j.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.jaamsim.ui.GUIFrame</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- JOGL & Gluegen -->
<dependency>
<groupId>org.jogamp.gluegen</groupId>
<artifactId>gluegen-rt</artifactId>
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl-all-main</artifactId>
<version>2.3.2</version>
</dependency>
</dependencies>
</project>
4.0.0
贾姆西姆
贾姆西姆
0.0.1-快照
1.0.0-beta2
1.0.0-beta2
1.8
1.8
org.apache.maven.plugins
maven jar插件
3.1.2
真的
解放党/
com.jaamsim.ui.GUIFrame
org.jogamp.gluegen
gluegen rt
2.3.2
org.jogamp.jogl
慢跑所有主要路线
2.3.2
我还尝试使用着色插件构建jar,并在本地repo中安装JOGL和GlueGen,这产生了相同的结果
非常感谢帮助解决此问题 Maven不会将依赖类打包到final.jar中。一些选择:
- 使用-classpath标志()将依赖项手动添加到类路径中
- 使用Maven exec插件,它将生成正确的类路径()
- 创建一个包含所有依赖项的“胖”jar()
KeyListener
接口。@不,版本、工件ID和组ID都是正确的,但gluegen rt应替换为gluegen rt main,这是我在示例中所做的:käyrätorvi是正确的,依赖项没有与他的程序打包在一起。