从命令提示符执行.jar文件时发生了JNI错误

我创建了两个java文件my maven项目一个是POJO类,另一个是java主类文件。 我想将我的项目作为可执行jar文件,我想使用java -jar命令在外部运行。

请找到我的pom.xml文件

 4.0.0 ElasticSearchUtility ElasticSearchUtility 1.0.0-SNAPSHOT jar   org.elasticsearch elasticsearch 6.1.2   org.elasticsearch.client elasticsearch-rest-high-level-client 6.1.2   org.elasticsearch.client rest 5.1.2      org.apache.maven.plugins maven-eclipse-plugin 2.9  true false     org.apache.maven.plugins maven-compiler-plugin 2.3.2  1.8 1.8     org.apache.maven.plugins maven-jar-plugin   **/log4j.properties    true com.es.utility.DocumentIndex dependency-jars/        

在使用java -jar命令执行我的jar文件时。 我得到了错误

 Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/Ela sticsearchException 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: org.elasticsearch.ElasticsearchExce ption 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 

请找到我的项目结构:

在此处输入图像描述

创建jar-with-dependencies

    maven-assembly-plugin    fully.qualified.MainClass    jar-with-dependencies     make-jar package  single       

这将创建包含其中所有依赖项的FatJarUberJar