Java - ClassNotFoundException: java. net .http.HttpClient - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь запустить файл jar на windows VM. При тестировании с использованием приглашения CMD, я получаю эту ошибку -

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

Это мой 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: .

Я думаю, что класс, который говорит, что не может найти это httpclient-4.0.1.jar , который находится на 6-й строке файла MANIFEST. Единственная проблема, о которой я могу подумать, это то, что Class-Path в конце MANIFEST просто .

Я также разархивировал файл .jar, чтобы убедиться, что соответствующие файлы .jar действительно присутствуют. , что это (при условии, что httpclient-4.0.1.jar является правильным файлом).

Я могу запустить другие файлы .jar на этой виртуальной машине, но ни один с этим классом в нем. Я также обновил Java, на всякий случай, что не помогло.

1 Ответ

1 голос
/ 13 марта 2020

httpclient-4.0.1.jar наиболее вероятно означает, что версия v4.0.1 org.apache.httpcomponents:httpclient.

И java.net.http.HttpClient была введена начиная с версии 11 JDK. Разве вы не забыли использовать правильную версию jre / jvm?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...