I've little experience with Java and JAR files. I've downloaded a JAR file provided to me which seems to contain all of the necessary dependencies, but when I try to run java -jar MyJar.jar
, it throws the following exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:420)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.HttpClient
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 3 more
The JAR file itself seems to contain all of the necessary dependencies as outlined in the MANIFEST.MF
file:
Manifest-Version: 1.0
Rsrc-Class-Path: ./ amqp-client-5.6.0.jar jackson-core-2.9.8.jar jacks
on-databind-2.9.8.jar jackson-annotations-2.9.0.jar jackson-dataforma
t-yaml-2.9.8.jar snakeyaml-1.23.jar slf4j-api-1.7.5.jar slf4j-log4j12
-1.7.5.jar log4j-1.2.17.jar httpclient-4.5.8.jar httpcore-4.4.11.jar
commons-logging-1.2.jar commons-codec-1.11.jar
Class-Path: .
Rsrc-Main-Class: TRECISExternalClient
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
I was wondering if there's something I'm missing or if it possible that something is malformed. Happy to provide more information if needed.