Ошибка получения: java.lang.NoClassDefFoundError: java/net/http/HttpRequest ⇐ JAVA
-
Anonymous
Ошибка получения: java.lang.NoClassDefFoundError: java/net/http/HttpRequest
Я просмотрел довольно много статей, но не нашел решения, поэтому решил опубликовать их здесь.
Я использую Java 11 для создания микросервиса Spring Boot, но когда я запускаю jar-файл службы с помощью приведенной ниже команды, служба запускается нормально, но во время выполнения выдается ошибка ниже:
java -jar java.lang.NoClassDefFoundError: java/net/http/HttpRequest на com.jdgbl.midd.elab.test.TestServer.getUri(TestServer.java:176) ~[классы!/:2.0.0-SNAPSHOT] на com.jdgbl.midd.elab.test.TestServer.callApi(TestServer.java:121) ~[классы!/:2.0.0-SNAPSHOT] на com.jdgbl.midd.elab.test.TestServer.lambda$processMessages$0(TestServer.java:99) ~[classes!/:2.0.0-SNAPSHOT] по адресу com.rabbitmq.client.impl.recovery.AutorecoveringChannel$2.handleDelivery(AutorecoveringChannel.java:588) ~[amqp-client-5.19.0.jar!/:5.19.0] в com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149) ~[amqp-client-5.19.0.jar!/:5.19.0] в com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:111) ~[amqp-client-5.19.0.jar!/:5.19.0] в java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] в java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] в java.base/java.lang.Thread.run(Thread.java:829) ~[na:na] Вызвано: java.lang.ClassNotFoundException: java.net.http.HttpRequest по адресу java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) ~[na:na] в java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[na:na] в org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92) ~[mytest-service-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] в java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na] ... 9 общих фреймов опущены Когда я настраиваю свой JAVA_HOME на JDK-11, он работает нормально. Но когда я использую JAVA_HOME для JRE (вместо JDK), это не удается. Я не уверен, почему он не находит этот класс внутри JRE. Может ли кто-нибудь подсказать, если я что-то упускаю.
Я просмотрел довольно много статей, но не нашел решения, поэтому решил опубликовать их здесь.
Я использую Java 11 для создания микросервиса Spring Boot, но когда я запускаю jar-файл службы с помощью приведенной ниже команды, служба запускается нормально, но во время выполнения выдается ошибка ниже:
java -jar java.lang.NoClassDefFoundError: java/net/http/HttpRequest на com.jdgbl.midd.elab.test.TestServer.getUri(TestServer.java:176) ~[классы!/:2.0.0-SNAPSHOT] на com.jdgbl.midd.elab.test.TestServer.callApi(TestServer.java:121) ~[классы!/:2.0.0-SNAPSHOT] на com.jdgbl.midd.elab.test.TestServer.lambda$processMessages$0(TestServer.java:99) ~[classes!/:2.0.0-SNAPSHOT] по адресу com.rabbitmq.client.impl.recovery.AutorecoveringChannel$2.handleDelivery(AutorecoveringChannel.java:588) ~[amqp-client-5.19.0.jar!/:5.19.0] в com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149) ~[amqp-client-5.19.0.jar!/:5.19.0] в com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:111) ~[amqp-client-5.19.0.jar!/:5.19.0] в java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] в java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] в java.base/java.lang.Thread.run(Thread.java:829) ~[na:na] Вызвано: java.lang.ClassNotFoundException: java.net.http.HttpRequest по адресу java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476) ~[na:na] в java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[na:na] в org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92) ~[mytest-service-2.0.0-SNAPSHOT.jar:2.0.0-SNAPSHOT] в java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na] ... 9 общих фреймов опущены Когда я настраиваю свой JAVA_HOME на JDK-11, он работает нормально. Но когда я использую JAVA_HOME для JRE (вместо JDK), это не удается. Я не уверен, почему он не находит этот класс внутри JRE. Может ли кто-нибудь подсказать, если я что-то упускаю.
Мобильная версия