use*_*810 1 java netbeans jgroups maven classnotfoundexception
我正在做一个聊天项目。当我在 ide (netbeans) 中运行它时,它可以正常打开并且运行良好。但是当我从终端运行它时,我收到如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jgroups/Receiver
at com.mycompany.chatapp1.ChatWindow.<init>(ChatWindow.java:32)
at com.mycompany.chatapp1.Main.main(Main.java:10)
Caused by: java.lang.ClassNotFoundException: org.jgroups.Receiver
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
我通过命令运行它java -jar ChatApp1-1.0-SNAPSHOT.jar
这是我的依赖信息:
<dependencies>
<dependency>
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
<version>3.4.3.Final</version>
</dependency>
</dependencies>
可能出什么问题了?
创建jar项目时,不包含依赖项目。因此,您要么需要在命令行上设置类路径-cp
,这将非常麻烦,要么您可以使用Maven Shade Plugin,它包含 jar 中的所有依赖项,从而生成完整的可执行 jar 文件。
在您的 pom 中包含以下代码片段(当然还有您的主类):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>my.main.class</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5800 次 |
最近记录: |