source

스프링 부트 프로그램에서 기본 클래스를 찾을 수 없습니다.

itover 2022. 11. 11. 23:31
반응형

스프링 부트 프로그램에서 기본 클래스를 찾을 수 없습니다.

이클립스 스프링 부트 앱으로 실행되는 프로그램이 있습니다.프로그램은 정상적으로 실행되고 있었다.그리고 다음 작업을 수행했습니다.

[ Project ]-> [ Run As ]-> [ Maven Test ]를 오른쪽 클릭합니다.

이건 사고였어요그 후 다시 스프링 부트 앱으로 프로그램을 실행하려고 하면 다음과 같은 오류가 발생하였습니다.

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

애플리케이션을 메인 클래스로 되돌리려면 어떻게 해야 하나요?감사해요.

저도 같은 문제가 있었어요.다음을 시도해 보십시오.

[프로젝트] 우클릭 -> [메이븐

그런 다음 프로젝트를 다시 실행합니다.당신에게도 효과가 있기를 바랍니다.

기본 클래스는 pom.xml로 설정할 수 있습니다.

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

[실행] -> [설정 실행]을 참조해 주세요.이클립스로.실수로 새로 작성한 것을 삭제해야 합니다.기존의 것은 그대로 가지고 있을 것입니다.

"Run as Maven Test(메이븐으로 실행 테스트)"에 대한 새로운 실행 구성이 생성되었을 것으로 생각되며, 이제 항상 이 테스트를 시작합니다.

Spring Boot을 사용하고 있는데 위의 제안이 작동하지 않는 경우 이클립스 문제 뷰(윈도 -> 표시 뷰 -> 문제)를 참조할 수 있습니다.

예를 들어 동일한 오류가 발생할 수 있습니다(오류: 메인 클래스 groupId를 찾거나 로드할 수 없습니다).응용 프로그램)을 클릭합니다.이클립스는 불량 항아리가 근본 원인이지만 응용 프로그램 클래스를 찾을 수 없다고 불평합니다.

그러나 문제 보기에서는 불량 항아리가 식별됩니다.

어쨌든 로컬의 mvn repo(.m2)로 이동하여 파손된 jar를 수동으로 삭제하고 업데이트(Package Explorer에서 프로젝트 오른쪽 클릭), Maven --> Update Project...-> OK (올바른 프로젝트에 체크 마크가 붙어 있는 것을 전제로 합니다).

저는 위의 해결책을 모두 시도해 보았지만, 효과가 없었습니다.마침내 간단한 수정으로 해결할 수 있었다.

STS에서 [Run Configuration]> [ open your Spring Boot App ]> [ Open your configuration ]를 선택하고, 다음의 순서에 따릅니다.

  1. 스프링 부트 탭에서 메인클래스와 프로파일을 확인합니다.
  2. 그런 다음 classpath 탭으로 이동합니다.하부에 두 개의 체크박스가 표시됩니다.하나는 "테스트 코드 제외"(테스트 클래스를 실행하지 않으려면 이 체크박스를 켜십시오)이고 다른 하나는 "클래스 경로를 지정하기 위해 임시 Jar 파일을 사용합니다"(이 체크박스는 필수입니다)입니다.

구성을 저장하고 실행합니다.여기에 이미지 설명 입력

POM을 업데이트한 후 이 문제가 발생하였습니다.

다음 단계를 통해 이 오류를 방지할 수 있습니다.

right click on the project > maven > update project

인텔리

  • Intelij를 닫기
  • Intelij(.idea 폴더 및 *.iml 파일)와 관련된 모든 파일을 삭제합니다.
  • 프로젝트를 처음처럼 인텔리지에서 엽니다(오픈 리젠트를 사용하는 것은 동작하지 않습니다.ID는 파일 -> 오픈으로 실행할 필요가 있습니다).

스프링 부트 응용 프로그램을 시작하려면 spring-boot:run 명령을 사용합니다.

전제 조건: 1.다음 속성을 pom.xml에 추가합니다.

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

2. 프로젝트를 구축하다

그런 다음 spring-boot: run을 사용하여 maven 명령을 설정합니다.

네비게이션:

[ Project ] | [ Run As ] | [ Run Configuration ]를 오른쪽 클릭합니다.| spring-boot 명령을 사용하여 새로운 Maven Configuration 추가: run

누군가가 빌드에 Gradle을 사용하고 있는 경우 수정은 build.gradle 파일에 다음 행을 추가하는 것입니다.

apply plugin: 'application'

mainClassName = "com.example.demo.DemoApplication"

이게 꽤 늦은 답인 거 알아.하지만 새로운 학습자에게 도움이 될 수도 있습니다.다음 예시는 NETBENS를 사용하는 스프링부트 전용입니다.다음 단계를 수행해야 했습니다.

스텝 1. @Mariusz의 답변에 따릅니다.

스텝 2. [프로젝트]-> [속성]-> [파일명을 지정하여 실행]를 오른쪽 클릭합니다.[ Main Class ]필드에 올바른 스타터 클래스가 있는지 확인합니다.그렇지 않으면 [Browse]를 클릭하여 사용 가능한 클래스에서 선택합니다.

스텝 3. [OK]-> [OK]을 클릭합니다.텐트가 전부다.감사해요.

저의 해결책은 다음과 같습니다.

  1. Boot Dashboard(대시보드 부팅)에서 인스턴스를 마우스 오른쪽 버튼으로 클릭합니다.
  2. 설정 열기
  3. 탭 스프링 부트
  4. 기본 유형, 응용 프로그램 파일의 경로가 누락되었습니다...

저는 스프링 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을 통해 maven을 사용하여 수동 빌드를 시도했습니다.

mvn clean install

여전히 문제가 있었다. 그리고 나는 내 프로젝트에 두 개의 라이브러리가 있다는 것을 깨달았다.

  1. 참조 라이브러리
  2. 메이븐 라이브러리

「 」 「 」:
다른 mavenRepo 폴더를 생성하여 다시 빌드하고 프로젝트를 새로 고칩니다.메이븐 라이브러리

실행 중 여러 버전을 가져오고 있었기 때문에 응용 프로그램을 실행할 적절한 클래스를 찾을 수 없었습니다.이 페이지에 기재되어 있는 다른 솔루션에서도 이 문제가 해결되지만, 이 솔루션에서 오류가 발생한 경우

  1. 주석 클래스
  2. 폼 엔트리
  3. jar 버전 등

누군가가 이 문제를 발견하면 이 문제가 해결되기를 바랍니다.

.m2에서 오래된 jar를 삭제하고 maven 프로젝트를 업데이트하는 것이 기본 단계입니다.대부분의 경우 문제가 해결됩니다.이 문제의 원인은 대부분 파손된 오래된 항아리입니다.

같은 문제가 발생해, 다음의 순서로 해결할 수 있었다.

  1. 파일 -> 캐시 비활성화 및 재시작
  2. 파일 -> 신규 -> 기존 소스로부터의 프로젝트
  3. 프로젝트 디렉토리 전체가 아닌 pom.xml 파일만 선택하여 프로젝트를 로드합니다.프로젝트가 자동으로 설정됩니다.

오류: 기본 클래스를 로드하거나 찾을 수 없습니다.

프로젝트:스프링 부트 도구:STS


해결 절차:


  1. 프로젝트 실행

  1. 문제 탭을 참조하십시오. 손상된 오류가 표시됩니다.

  1. .m2 폴더의 특정 jar(파손된 jar)를 삭제합니다.

  1. 프로젝트 갱신

  1. 실행 성공

로컬 저장소에서 .m2 폴더를 삭제하면 같은 문제가 발생하였습니다.이 폴더가 작동하기를 바랍니다.

start-class나한테는 안 돼, 내가 그걸 고쳐서build plugins로로 합니다.pom.xml , , , , 입니다.executions수입니니다다

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

여기 좋은 답이 있지만, 아마 이것도 누군가에게 도움이 될 거예요.

저는 (IntelliJ를 사용하여) .idea를 삭제하고 프로젝트를 다시 Import한 직후에 이 일이 일어났습니다.

그 후 이 문제가 시작되어 IDE Maven 툴바를 통해 mvn 컴파일을 실행하려고 했는데 컴파일 오류를 몇 개 수정하면 문제가 사라졌습니다.

만약 당신이 우연히

오류: maven 프로젝트에서 주 클래스를 찾거나 로드할 수 없습니다.

나한테는 효과가 있었어
파일 설치되어 않기 입니다.이 오류의 원인은 jar 파일 또는 maven 프로젝트를 실행하기 위한 종속성이 올바르게 설치되지 않았기 때문입니다.

방법: 프로젝트 폴더: 프로젝트 폴더: 오류 해결 방법:D:\office\OIA-service-app)
명령어 computer 에 "computer" 라고 합니다.cmd라고 입력합니다.
에 command command를 합니다.mvn clean install이치노

프로젝트 패키징 유형의 전쟁인 경우 시작할 수 없습니다.이 구성에서 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>

그리고 제 패키징은 전쟁입니다.메인 클래스 예외를 찾을 수 없습니다만, 패키징을 변경하여 효과가 있었습니다.

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

제 경우, 다음과 같은 점이 도움이 되었습니다.

POM에 다음 섹션을 추가했습니다.

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

maven3를 사용하여 실행했는데 작동했습니다.

나도 이 오류가 발생했는데 전혀 모르고 있었다.Target 폴더에 있는 클래스와 항아리들을 볼 수 있었다.나중에 Maven 3.5를 설치하고 Maven의 conf/settings.xml을 통해 로컬 레포를 C 드라이브에서 다른 드라이브로 전환했습니다.그 후로는 완벽하게 잘 작동했다.C 드라이브에 로컬 레포(repo)가 있었던 것이 주된 문제였던 것 같습니다.레포는 완전한 접근권을 가지고 있었음에도 불구하고.

나도 같은 문제에 직면해 있었다.대상 폴더를 삭제하고 maven install을 실행했습니다.

나는 나의 프로젝트에 봄 보안 의존을 추가하는 동안 비슷한 종류의 문제가 있었습니다, 그리고 나는 나의 목표 폴더를 삭제하고 maven update를 다시 사용했습니다.나한테는 효과가 있었어.

같은 문제에 직면했는데 나중에 알게 된 것은 maven build operation이 제 환경에서 제대로 이루어지지 않았기 때문입니다.당신의 케이스도 확인해 주세요.

그래들 빌드를 사용했지만 같은 오류가 발생했습니다.IDE 빌드/실행 액션을 Gradle에 위임하면 문제가 해결됩니다.

인텔리:설정 -> 빌드, 실행, 전개 -> 빌드 도구 -> 그래들 -> 러너

스크린샷

"Spring Tool Suite" 소프트웨어에서도 동일한 오류가 발생했습니다.

저의 경우 자바8을 설치하고 자바11 프로젝트를 만들었습니다.그리고 프로젝트를 실행할 때 "cannot find main class"와 같은 오류가 발생했습니다.

그리고 자바8에서 프로젝트를 만들었고 문제가 해결되었습니다.

(Eclipse) maven 프로젝트 갱신이 잘 되지 않았습니다.Run configurations(구성실행)에서 "Main(메인)" 탭의 "Project(프로젝트)" 필드에 패키지 이름 com.bla.blabla를 모두 기입하면 됩니다.MyMainClass(메인 클래스 이름뿐만 아니라)이름이 같지만 패키지가 다른 프로젝트가 여러 개 있기 때문에 오류가 발생했습니다.

위의 어느 솔루션도 동작하지 않는 경우는, 빌드 태그를 다음의 내부 POM 파일로 치환해 주세요.

<build>
<pluginManagement>
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
</plugins></pluginManagement>
</build>

저는 스프링 부츠에 익숙하지 않고 메이븐 빌드의 STS를 사용하고 있습니다.나는 위에서 말한 모든 것을 했지만 나에게는 효과가 없다.STS의 문제창에서 두 가지 문제를 발견했습니다.경로에 jar 파일이 없습니다(C:\Users\UserName.m2\repository\com\jayway\jsonpath\json-path\2.2.0).팔로잉을 했어요, 방법이 강하게 제시되지는 않았지만 제게는 효과가 있었어요.

1) 경로 위치에서 .m2 폴더를 삭제했습니다.

2) STS 재부팅

3) 프로젝트 폴더 우클릭 -> maven -> update project -> [스냅샷/릴리스 강제 갱신] -> [확인]을 클릭합니다.

Maven은 종속성을 업데이트하고 문제를 해결했습니다.

언급URL : https://stackoverflow.com/questions/28451120/spring-boot-program-cannot-find-main-class

반응형