Java - ClassNotFoundException: java.net.http.HttpClient

CDickson :

I'm attempting to run a jar file on a windows VM. When testing it using the CMD prompt, I get this error -

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.NoClassDefFoundError: java/net/http/HttpClient
        at jarName.Main.removeExtinct(Main.java:250)
        at jarName.Main.main(Main.java:93)
        ... 5 more
Caused by: java.lang.ClassNotFoundException: java.net.http.HttpClient
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 7 more

This is my MANIFEST.MF:

Manifest-Version: 1.0
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
Rsrc-Class-Path: ./ selenium-server-standalone-3.7.1.jar aws-java-sdk-s3
 -1.11.529.jar aws-java-sdk-kms-1.11.529.jar aws-java-sdk-core-1.11.529.
 jar ion-java-1.0.2.jar jackson-dataformat-cbor-2.6.7.jar jmespath-java-
 1.11.529.jar aws-java-sdk-dynamodb-1.11.529.jar httpclient-4.0.1.jar co
 mmons-logging-1.1.1.jar commons-codec-1.3.jar httpcore-4.0.1.jar jackso
 n-core-2.9.3.jar jackson-databind-2.9.3.jar jackson-annotations-2.9.0.j
 ar postgresql-42.2.8.jar json-20190722.jar commons-net-3.6.jar jasypt-1
 .9.0.jar ebay-oauth-java-client-1.1.0.jar okhttp-3.10.0.jar okio-1.14.0
 .jar snakeyaml-1.20.jar joda-time-2.9.9.jar slf4j-api-1.7.25.jar seleni
 um-java-3.11.0.jar selenium-api-3.11.0.jar selenium-chrome-driver-3.11.
 0.jar selenium-edge-driver-3.11.0.jar selenium-firefox-driver-3.11.0.ja
 r selenium-ie-driver-3.11.0.jar selenium-opera-driver-3.11.0.jar seleni
 um-remote-driver-3.11.0.jar selenium-safari-driver-3.11.0.jar selenium-
 support-3.11.0.jar byte-buddy-1.7.9.jar commons-exec-1.3.jar guava-23.6
 -jre.jar jsr305-1.3.9.jar checker-compat-qual-2.0.0.jar error_prone_ann
 otations-2.1.3.jar j2objc-annotations-1.1.jar animal-sniffer-annotation
 s-1.14.jar jjwt-0.9.0.jar commons-lang3-3.7.jar gson-2.8.6.jar
Rsrc-Main-Class: jarName.Main
Class-Path: .

I think the class it's saying it can't find is httpclient-4.0.1.jar which is on the 6th line if the MANIFEST file. The only issue I can think of is the Class-Path at the end of the MANIFEST being just .

I also unzipped the .jar file, to make sure the relevant .jar files are actually present, which it is (assuming httpclient-4.0.1.jar is the correct file).

I can run other .jar files on this VM, though none with this class in it. I've updated Java as well, just in case, which didn't help.

y_ug :

httpclient-4.0.1.jar most probably means version v4.0.1 of org.apache.httpcomponents:httpclient.

And java.net.http.HttpClient was intriduced since 11 version of JDK. Didn't you forget to use correct version of jre/jvm?

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=237489&siteId=1