Java maven程序包可执行jar无法运行";NoClassDefFoundError“;
我使用mavenJava maven程序包可执行jar无法运行";NoClassDefFoundError“;,java,maven,Java,Maven,我使用mavenmaven-package命令编译了我的项目,并成功地导出了创建的可执行jar文件 但当我运行这个时,只需错误输出NoclassDefFoundError $ java -server -Xms512m -Xmx2048m -Dlogback.configurationFile=`pwd`/resources/logback.xml -jar stocktalk-chat-0.3.1.jar Error: A JNI error has occurred, please chec
maven-package
命令编译了我的项目,并成功地导出了创建的可执行jar文件
但当我运行这个时,只需错误输出NoclassDefFoundError
$ java -server -Xms512m -Xmx2048m -Dlogback.configurationFile=`pwd`/resources/logback.xml -jar stocktalk-chat-0.3.1.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: io/netty/channel/EventLoopGroup
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: io.netty.channel.EventLoopGroup
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)
... 7 more
在我的节日里
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Administrator
Class-Path: lib/aws-java-sdk-core-1.10.68.jar lib/commons-logging-1.1.
3.jar lib/httpclient-4.3.6.jar lib/httpcore-4.3.3.jar lib/commons-cod
ec-1.6.jar lib/jackson-databind-2.5.3.jar lib/jackson-annotations-2.5
.0.jar lib/jackson-core-2.5.3.jar lib/jackson-dataformat-cbor-2.5.3.j
ar lib/joda-time-2.8.1.jar lib/aws-java-sdk-datapipeline-1.10.68.jar
lib/aws-java-sdk-dynamodb-1.10.68.jar lib/aws-java-sdk-s3-1.10.68.jar
lib/aws-java-sdk-kms-1.10.68.jar lib/gcm-server-1.0.2.jar lib/json-s
imple-1.1.jar lib/slf4j-api-1.7.7.jar lib/logback-classic-1.1.2.jar l
ib/logback-core-1.1.2.jar lib/jcl-over-slf4j-1.7.7.jar lib/log4j-api-
2.5.jar lib/log4j-core-2.5.jar lib/mybatis-3.3.1.jar lib/netty-all-4.
0.36.Final.jar lib/lombok-1.16.8.jar lib/gson-2.6.2.jar lib/jtds-1.3.
1.jar
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_65
Main-Class: kr.stocktalk.chat.ChatServer
在类路径中添加了所有依赖项
请检查我的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">
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<modelVersion>4.0.0</modelVersion>
<groupId>kr.stocktalk</groupId>
<artifactId>stocktalk-chat</artifactId>
<version>0.3.1</version>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>kr.stocktalk.chat.ChatServer</mainClass>
<arguments>
<argument>-server</argument>
<argument>-Xms512m</argument>
<argument>-Xmx2048m</argument>
<argument>-Dlogback.configurationFile=classpath:resources/logback.xml</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<!-- <compilerArgument>-Xlint:all</compilerArgument> -->
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId>
<version>2.3</version> <executions> <execution> <id>copy-dependencies</id>
<phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> </execution>
</executions> <configuration> eclipse 에서는 target 밑의 lib 에 생성 됨 <outputDirectory>lib</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer> </configuration> </plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/lib</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>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>kr.stocktalk.chat.ChatServer</mainClass>
<classpathPrefix>lib</classpathPrefix>
</manifest>
<!-- <manifestEntries>
<Class-Path>lib/</Class-Path>
</manifestEntries> -->
</archive>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<targetPath>resources</targetPath>
</resource>
</resources>
</build>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.10.68</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-datapipeline</artifactId>
<version>1.10.68</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<version>1.10.68</version>
</dependency>
<dependency>
<groupId>com.ganyo</groupId>
<artifactId>gcm-server</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.0.36.Final</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.8</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
</project>
UTF-8
UTF-8
4.0.0
股票谈话
股票聊天
0.3.1
org.codehaus.mojo
execmaven插件
1.2.1
JAVA
kr.stocktalk.chat.ChatServer
-服务器
-Xms512m
-Xmx2048m
-Dlogback.configurationFile=classpath:resources/logback.xml
org.apache.maven.plugins
maven编译器插件
2.5.1
1.8
1.8
真的
真的
UTF-8
org.apache.maven.plugins
maven依赖插件
复制依赖项
准备包装
复制依赖项
${project.build.directory}/classes/lib
假的
假的
真的
org.apache.maven.plugins
maven jar插件
真的
kr.stocktalk.chat.ChatServer
解放党
src/main/resources
资源
亚马逊网站
aws java sdk核心
1.10.68
亚马逊网站
aws java sdk数据管道
1.10.68
亚马逊网站
aws java sdk dynamodb
1.10.68
com.ganyo
gcm服务器
1.0.2
org.slf4j
slf4j api
1.7.7
回写
回归经典
1.1.2
org.slf4j
slf4j api
org.slf4j
jcl-over-slf4j
1.7.7
org.apache.logging.log4j
log4japi
2.5
org.apache.logging.log4j
log4j型芯
2.5
org.mybatis
mybatis
3.3.1
伊奥·内蒂
讨厌的
4.0.36.1决赛
org.projectlombok
龙目
1.16.8
com.google.code.gson
格森
2.6.2
net.sourceforge.jtds
jtds
1.3.1
虽然我不是Maven方面的专家,但我认为您需要使用
设置相同的路径
值
所以,您可以这样修改
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>kr.stocktalk.chat.ChatServer</mainClass>
<classpathPrefix>classes/lib</classpathPrefix>
</manifest>
<!-- <manifestEntries>
<Class-Path>lib/</Class-Path>
</manifestEntries> -->
</archive>
</configuration>
</plugin>
此代码是否在编译/打包的同一台计算机上运行?如果没有,可执行jar文件是否与所有依赖项打包在一起?另一个想法是,根据这篇评论中的论点,你可以尝试做一个mvn-e清理(如果还没有发生的话)。谢谢你,我会尝试并尽快回复!
Class-Path: classes/lib/netty-all-4.0.36.Final.jar