Версии Linux и jdk несовместимы

#java #spring-boot

#java #весенняя загрузка

Вопрос:

тот же код, когда я использую maven для упаковки кодов на Linux 6.0.10 , окончательный jar не может быть выполнен успешно, но я делаю это на Linux 8 , это работает хорошо. The jdk version is 1.8

Исключение в виде следующего:

org.springframework.beans.factory.Исключение BeanCreationException: ошибка при создании компонента с именем ‘org.springframework.context.event.internalEventListenerProcessor’: не удалось создать экземпляр компонента; вложенным исключением является java.lang.Исключение IllegalStateException: класс компонента не указан в определении компонента в org.springframework.beans.factory.support.Абстрактно автоматически настраиваемый BeanFactory.instantiateBean(абстрактно автоматически настраиваемый BeanFactory.java:1287) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.Абстрактно автоматически настраиваемый BeanFactory.createBeanInstance (абстрактно автоматически настраиваемый BeanFactory.java:1181) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.Абстрактно автоматически настраиваемый BeanFactory.doCreateBean(абстрактно автоматически настраиваемый BeanFactory.java:555) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.Абстрактно автоматически настраиваемый BeanFactory.createBean(абстрактно автоматически настраиваемый BeanFactory.java:515) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0 (AbstractBeanFactory.java:320) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:179 ) ~ [spring-context-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.context.support.Абстрактное приложение context.invokeBeanFactoryPostProcessors (абстрактное приложение context.java:705) ~[spring-context-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.context.support.AbstractApplicationContext.refresh(абстрактное приложение context.java:531) ~[spring-context-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в организации.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.обновить (ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.3.RELEASE.jar !/:2.1.3.RELEASE] в org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.3.RELEASE.jar !/:2.1.3.RELEASE] в org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.3.RELEASE.jar !/:2.1.3.RELEASE] в org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.3.RELEASE.jar !/:2.1.3.RELEASE] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.3.RELEASE.jar !/:2.1.3.RELEASE] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.3.RELEASE.jar !/:2.1.3.RELEASE] в cn.j.lithium.LithiumApplication.main (LithiumApplication.java: 16) [classes!/:0.0.1-SNAPSHOT] в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) ~ [na: 1.8.0_131] в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_131] в солнце.задумайтесь.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:43) ~[na:1.8.0_131] в java.lang.reflect.Метод.invoke(Method.java:498) ~[na:1.8.0_131] в org.springframework.boot.loader.MAINMETHOD runner.run(mainmethod runner.java:48) [lithium-0.0.1-test.jar:0.0.1-SNAPSHOT] в org.springframework.boot.loader.Лаунчер.запустите (Launcher.java:87) [lithium-0.0.1-test.jar:0.0.1-SNAPSHOT] в org.springframework.boot.loader.Лаунчер.запустите (Launcher.java:50) [lithium-0.0.1-test.jar:0.0.1-SNAPSHOT] в org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [lithium-0.0.1-test.jar:0.0.1-SNAPSHOT] Вызвано: java.lang.Исключение IllegalStateException: класс компонента не указан в определении компонента в org.springframework.beans.factory.support.AbstractBeanDefinition.getBeanClass(абстрактное определение.java:407) ~[spring-beans-5.1.5.RELEASE.jar !/:5.1.5.RELEASE] в org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:68 ) ~ [spring-beans-5.1.5.RELEASE.jar !/:5.1.5.ВЫПУСК

Комментарии:

1. Что заставляет вас думать, что они несовместимы? Выполняется ли то же самое в другой конфигурации? Что это за конфигурация? Кроме того, что вы называете «Linux 6»?

2. те же коды, упакуйте их как исполняемый файл jar в разных версиях ОС Linux. Есть два jar, один упакован на низкой версии Linux (он не может быть запущен), один упакован на высокой версии Linux (он работает успешно)

Ответ №1:

ОК. Действительно трудно понять, что происходит с опубликованным вами stacktrace (вероятно, вы не опубликовали его целиком) — так что вот мое предположение:

Linux — это (ядро), и такой версии у него нет, поэтому я предполагаю, что вы имеете в виду один из многих дистрибутивов, возможно, Debian (первая ссылка в Google для Linux 6.0.10 ). Вы можете проверить это с помощью cat /etc/*-release в консоли.

На веб-сайте Distrowatch говорится, что Debian 6.x на нем есть OpenJDK 1.6, который слишком устарел для используемой вами версии Spring.

Не стесняйтесь использовать последний веб-сайт для поиска вашего дистрибутива, если это не Debian.

Комментарии:

1. да, я использовал Debina 6, я установил jdk is 1.8, они несовместимы, когда я компилировал файлы Java?

2. Похоже, проблема не в этом… Вы уверены, что для запуска вашего приложения используется надлежащий JRE, если у вас установлены они оба?

3. Я использовал команду ‘java’ из jdk / bin для выполнения jar, это правильно? Я уже добавляю java home в переменную PATH

4. Попробуйте java -version проверить

5. экспортировать JAVA_HOME=/usr/local/jdk1.8.0_131/ экспортировать ПУТЬ=$JAVA_HOME/bin:$PATH java -version