스프링 부트 프로그램에서 기본 클래스를 찾을 수 없습니다.
이클립스 스프링 부트 앱으로 실행되는 프로그램이 있습니다.프로그램은 정상적으로 실행되고 있었다.그리고 다음 작업을 수행했습니다.
[ 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 ]를 선택하고, 다음의 순서에 따릅니다.
- 스프링 부트 탭에서 메인클래스와 프로파일을 확인합니다.
- 그런 다음 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]을 클릭합니다.텐트가 전부다.감사해요.
저의 해결책은 다음과 같습니다.
- Boot Dashboard(대시보드 부팅)에서 인스턴스를 마우스 오른쪽 버튼으로 클릭합니다.
- 설정 열기
- 탭 스프링 부트
- 기본 유형, 응용 프로그램 파일의 경로가 누락되었습니다...
저는 스프링 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
여전히 문제가 있었다. 그리고 나는 내 프로젝트에 두 개의 라이브러리가 있다는 것을 깨달았다.
- 참조 라이브러리
- 메이븐 라이브러리
「 」 「 」:
다른 mavenRepo 폴더를 생성하여 다시 빌드하고 프로젝트를 새로 고칩니다.메이븐 라이브러리
실행 중 여러 버전을 가져오고 있었기 때문에 응용 프로그램을 실행할 적절한 클래스를 찾을 수 없었습니다.이 페이지에 기재되어 있는 다른 솔루션에서도 이 문제가 해결되지만, 이 솔루션에서 오류가 발생한 경우
- 주석 클래스
- 폼 엔트리
- jar 버전 등
누군가가 이 문제를 발견하면 이 문제가 해결되기를 바랍니다.
.m2에서 오래된 jar를 삭제하고 maven 프로젝트를 업데이트하는 것이 기본 단계입니다.대부분의 경우 문제가 해결됩니다.이 문제의 원인은 대부분 파손된 오래된 항아리입니다.
같은 문제가 발생해, 다음의 순서로 해결할 수 있었다.
- 파일 -> 캐시 비활성화 및 재시작
- 파일 -> 신규 -> 기존 소스로부터의 프로젝트
- 프로젝트 디렉토리 전체가 아닌 pom.xml 파일만 선택하여 프로젝트를 로드합니다.프로젝트가 자동으로 설정됩니다.
오류: 기본 클래스를 로드하거나 찾을 수 없습니다.
프로젝트:스프링 부트 도구:STS
해결 절차:
- 프로젝트 실행
- 문제 탭을 참조하십시오. 손상된 오류가 표시됩니다.
- .m2 폴더의 특정 jar(파손된 jar)를 삭제합니다.
- 프로젝트 갱신
- 실행 성공
로컬 저장소에서 .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
'source' 카테고리의 다른 글
| 사전을 파일에 저장하는 방법 (0) | 2022.11.11 |
|---|---|
| 치명적인 오류: Python.h: 해당 파일 또는 디렉터리가 없습니다. (0) | 2022.11.11 |
| 배열 목록 인쇄 (0) | 2022.11.11 |
| PHP는 키를 유지하면서 연관 배열의 마지막 3개 요소를 가져옵니다. (0) | 2022.11.11 |
| PHP 오류: "zip 확장 및 unzip 명령이 모두 없습니다. 건너뜁니다." (0) | 2022.11.11 |

