Подтвердить что ты не робот

Spring Программа загрузки не может найти основной класс

У меня есть программа, которая запускается как загрузочное приложение Spring в eclipse. Программа работала нормально. Затем я сделал следующее:

Щелкните правой кнопкой мыши по проекту → Запустить как → Тест Maven.

Это было случайно. Когда я попытался снова запустить программу в качестве загрузочного приложения Spring, она указала следующую ошибку ниже.

Error: Could not find or load main class com.bt.collab.alu.api.webapp.Application

Как вернуть приложение в мой основной класс? Благодаря

4b9b3361

Ответ 1

Основной класс настраивается в pom.xml

<properties>
    <start-class>com.bt.collab.alu.api.webapp.Application</start-class>
</properties>

Ответ 2

У меня была та же проблема. Попробуйте следующее:

Щелкните правой кнопкой мыши проект → Maven → Обновить проект

Затем перезапустите проект. Надеюсь, это сработает и для вас.

Ответ 3

Посмотрите в разделе "Run → Run Configurations..." в Eclipse. Вы должны удалить новый, который вы создали по ошибке, вы все равно должны иметь существующий.

Я подозреваю, что он создал новую конфигурацию запуска для "Run as Maven Test", и теперь вы всегда начинаете этот.

Ответ 4

Если вы используете Spring Boot, и приведенные выше рекомендации не работают, вы можете посмотреть представление Eclipse Problems (доступно в окне → Показать представление → Проблемы).

Например, вы можете получить ту же ошибку (ошибка: не удалось найти или загрузить основной класс groupId.Application), если один из ваших файлов jar поврежден. Eclipse будет жаловаться на то, что он не может найти класс приложений, хотя причиной является плохая банка.

В представлении "Проблемы", однако, будет идентифицирован плохой банд для вас.

В любом случае мне пришлось вручную перейти на локальное mvn-репо (в .m2) и вручную удалить поврежденную банку и обновить ее (щелкните правой кнопкой мыши по проекту в обозревателе пакетов), Maven → Update Project... → ОК (при условии, что правильный проект отмечен чек).

Ответ 5

Это случилось со мной после того, как я обновил pom (добавлены некоторые зависимости).

Следующий шаг помог мне избежать этой ошибки

right click on the project > maven > update project

Ответ 6

Используйте команду spring -boot: run, чтобы запустить приложение загрузки spring:

Предпосылка: 1. Добавьте следующее свойство в pom.xml

<property>    
<start-class>com.package.name.YourApplicationMainClass</start-class>
</property>

2. Создайте свой проект

Затем настройте команду maven с помощью spring -boot: run.

Навигация:

Щелкните правой кнопкой мыши проект | Запустить как | Запустить конфигурацию... | Добавьте новую конфигурацию Maven с помощью команды spring -boot: запустите

Ответ 7

В случае, если кто-то использует Gradle для сборки, исправить это можно, добавив следующие строки в файл build.gradle

apply plugin: 'application'

mainClassName = "com.example.demo.DemoApplication"

Ответ 8

Я использовал версию spring 1.5.3.RELEASE и задал зависимости pom, такие как

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent> 

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
   </dependencies>

И мой основной класс был

@SpringBootApplication
public class SpringAppStarter {


    public static void main(String[] args) {

        SpringApplication.run(SpringAppStarter.class, args);
    }

}

Но при выполнении основного класса я получал:

Не удалось найти или загрузить основной класс... с моим именем класса.

Я мог видеть, что класс доступен в пути к классу, и я использовал STS IDE.

У меня не было причин для проблемы, тогда я попробовал ручную сборку через maven с помощью

mvn clean install

Еще проблема была тогда, когда я понял, что мой проект имеет две библиотеки

  • Справочная библиотека
  • Библиотека Maven

Что я сделал:
Я создал другую папку mavenRepo и снова создаю ее и обновляю свой проект. После этого он работал, и я увидел, что библиотека Maven была удалена из пути к классу проекта.

Проблемы были во время выполнения, когда он получал несколько версий, поэтому он не смог найти подходящий класс для выполнения моего приложения. Другое решение, перечисленное на этой странице, также решает проблему, но если вы ошибаетесь в

  • Аннотирующий класс
  • запись pom
  • версия jar и т.д.

Надеюсь, что это может решить проблему, если кто-то получит эту проблему

Ответ 9

удаление старых банок из .m2 и обновление проекта maven должно быть основным шагом. В большинстве случаев это решает проблему. Причиной этой проблемы являются в основном поврежденные старые банки

Ответ 10

Ошибка: не удалось загрузить или найти основной класс

Проект: Spring Boot Tool: STS


Решить Шаги:


  1. Запустить проект

  1. Смотрите на вкладке проблемы, он покажет поврежденную ошибку

  1. Удалить этот конкретный jar (поврежденный jar) в папке.m2

  1. Обновить проект

  1. Запустить успешно

Ответ 11

Обнаружил ту же проблему и смог ее исправить, выполнив следующие действия:

  1. File → Invalidate Cache and Restart
  2. Файл → Новый → Проект из существующего источника
  3. Просто выберите файл pom.xml (не весь каталог проекта), чтобы загрузить проект. Проект будет настроен автоматически.

Ответ 12

Если вы столкнулись с

ошибка: не удалось найти или загрузить основной класс в проекте maven

сделай это, это сработало для меня:
Причина ошибки: причиной этой ошибки является файл jar или зависимость для запуска проекта maven. Не установлено.

Решение для ошибки: перейдите в папку проекта (например: D:\office\OIA-service-app)
в адресной строке команды компьютера cmd и нажмите клавишу ввода.
В командной строке введите команду mvn clean install, убедитесь, что у вас есть подключение к Интернету.

Ответ 13

Если вы не можете начать игру типа упаковки проекта. Я использовал плагин сборки maven с этой конфигурацией;

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.0.0</version><!--$NO-MVN-MAN-VER$ -->
            <configuration>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.ttech.VideoUploaderApplication</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

и моя упаковка tpe была войной, я получил, не могу найти исключение основного класса bu, я изменил упаковку на jar, это сработало;

<groupId>com.ttect</groupId>
<artifactId>VideoUploadListener</artifactId>
<version>1.0.0</version>
<packaging>**jar**</packaging>

Ответ 14

Я новичок в загрузке spring и использую STS с maven build. Я сделал все, что упоминалось выше, но не будет работать для меня. Я заметил две проблемы в окне проблем STS. На пути отсутствовал файл jar (C:\Users\UserName.m2\repository\com\jayway\jsonpath\json-path\2.2.0). Я сделал следующее, путь не сильно рекомендуется, но работал у меня.

1) Я удалил папку .m2 из местоположения пути

2) Перезапуск STS

3) Щелкните правой кнопкой мыши папку проекта → maven → проект обновления → отметьте "Принудительное обновление снимков/выпусков" → Нажмите "ОК".

Maven обновил свои зависимости, и проблема решена.

Ответ 15

В моем случае помогло следующее:

Добавлен следующий раздел в пом

  <plugins>
    <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
    </plugin>
  </plugins>

Запустил его с помощью Maven3, и это сработало

Ответ 16

Я также получил эту ошибку, не имел никакой подсказки. Я мог видеть класс и банки в целевой папке. Позже я установил Maven 3.5, переключил локальное хранилище с диска C на другой диск через conf/settings.xml Maven. После этого все работало отлично. Я думаю, что наличие локального репо на диске C было главной проблемой. Хотя репо имел полный доступ.

Ответ 17

Я знаю, что это довольно поздний ответ. Но это все еще может помочь некоторым новым ученикам. Следующий пример предназначен только для Springboot с NETBEANS. Мне пришлось сделать следующие шаги:

Шаг 1 Следуйте @Mariuszs ответ.

Шаг 2. Щелкните правой кнопкой мыши на проекте → Свойства → RUN. Убедитесь, что в поле Main Class указан правильный начальный класс, иначе нажмите кнопку обзора и выберите один из доступных классов.

Шаг 3 Нажмите OK-> ОК. Тан это все. Спасибо.

Ответ 18

У меня возникла такая же проблема, просто удалите папку.m2 из вашего локального хранилища. Надеюсь, это сработает.

Ответ 19

Для меня проблема была связана с неправильно настроенными строителями (eclipse-> проект → properties-> строители).

Я использую двух строителей

  • Java Builder
  • Муравей Строитель

Я не проверял Java Builder, когда пытался использовать сопоставленные задачи Ant для всего. Включение обоих сборщиков было исправлением в моем случае.

Ответ 20

Я столкнулся с той же проблемой. Я удалил целевую папку и запустил maven install, все заработало.

Ответ 21

У меня была похожая проблема, когда я добавлял в свой проект зависимость безопасности Spring, затем я удалил свою целевую папку и снова использовал maven update. Это сработало для меня.

Ответ 22

Это случилось со мной тоже. В моем случае это произошло только тогда, когда в исходном коде присутствовал класс HttpServlet (идея Intellij не давала ошибки времени компиляции, пакет сервлета импортировался очень хорошо, однако во время выполнения была ошибка main class).

Мне удалось это решить. Я пошел в Файл - Структура проекта:

enter image description here

Затем к модулям:

enter image description here

Рядом с модулем сервлета была предоставлена область действия. Я изменил это на Компиляция:

enter image description here

И это сработало!

Ответ 23

Даже когда я столкнулся с той же проблемой, позже обнаружил, что это произошло из-за того, что операция сборки maven не выполнялась должным образом в моей среде. Пожалуйста, проверьте это в вашем случае также.

Ответ 24

Intellij

  • закрыть Intellij
  • удалить все файлы, связанные с Intellij (папка .idea и файлы *.iml)
  • откройте проект в Intellij, как если бы это было в первый раз (использование open недавнего не сработает, id нужно сделать через file → open)

Ответ 25

Я столкнулся с той же ошибкой, хотя я использовал сборку Gradle. Передача действий по сборке/запуску IDE в Gradle решила мою проблему.

Intellij: Настройки → Сборка, Выполнение, Развертывание → Инструменты сборки → Gradle → Runner

Screenshot