오류 : intelliJ IDE에서 기본 클래스를 찾거나로드 할 수 없습니다


151

Java의 초보자이며 JDK 1.7과 함께 IDE로 방금 설치 한 IntelliJ를 사용하여 코드를 실행하려고합니다. 다음 코드 조각은 컴파일조차하지 않고 계속 오류를 발생시킵니다.

Error: Could not find or load main class libTest

암호

import java.lang.Integer;
import java.lang.String;
import java.lang.System;
import java.util.*;

class book {

    private String name = "trial";
    private int bookCode=1;
    private int issued=0;

     public void Issue(){
         if(issued==0) {
             issued=1;
             System.out.println("You have succesfully issued the book");
         }
         else {
             System.out.println("The book is already issued. Please contact the librarian for further details");
         }
    }

    public int checkCode() {
        return bookCode;
    }

    String readName() {
        return name;
    }

    public void setName(String newName){
        name=newName;
    }

    public void setBookCode(int newCode){
        bookCode=newCode;
    }
}

class library {
    private ArrayList books=new ArrayList();

    public void getList(){
        for(int bk:books){
            String bName=books(bk).readName();
            System.out.println((bk+1)+")  "+bName);
        }
    }
}

public class libTest{
    public static void main(String[] args){
        library newLib= new library();
        System.out.println("code working");
   }
}

컴파일러 설정에서 변경해야 할 사항이 있습니까 ?? 아니면 코드입니까?


2
소스 파일의 이름은 무엇입니까? 그렇 libTest.java습니까?
QuantumMechanic

import java.lang...이것은 lang패키지의 클래스에 대해 자동으로 발생 합니다.
앤드류 톰슨

QuantumMechanic에서 언급했듯이 기본 클래스는 정확히 같은 이름의 파일에 있어야합니다. 따라서 libTest는 libTest.java라는 Java 파일에 있어야합니다. 그렇지 않으면 Java 컴파일러가 불평합니다. 또한 IDEA를 통해 소스를 작성했거나 기존 소스에 대해 새 IDEA 프로젝트를 작성 했습니까?
mcfinnigan

java.lang 가져 오기를 시도했지만 아무런 차이가 없었습니다
혼란스러운 Mailman

그들은 동일합니다. 그러한 오류가 표시되어야하는 다른 이유가 있습니까?
혼란스런 Mailman

답변:


178

도움이 될 수 있습니다.

1) "빌드"메뉴-> " Rebuild Project". 때때로 Intellij는 클래스가 이미 존재하기 때문에 클래스를 다시 쓰지 않습니다. 이렇게하면 Intellij에 모든 것을 다시 쓰도록 요청할 수 있습니다.

2) "실행"메뉴-> " Edit configuration"-> 프로파일 삭제-> 프로파일을 다시 추가 ( "애플리케이션"인 경우 "애플리케이션"인 경우) "메인 클래스"드롭 다운 메뉴에서 메인 클래스를 선택하십시오.

3) "빌드"메뉴-> " Rebuild Project".


9
IntelliJ에 새로운 프로젝트가 있었고 실행되지 않았습니다. Rebuild Project나를 위해 일했다!
Danny Harding

두 번째 옵션이 나를 위해 일했습니다. 그러나 구성 프로파일을 삭제 한 다음 클래스를 마우스 오른쪽 버튼으로 클릭하십시오.-> run
NoName

2
"Build" menu -> "Rebuild Project-일을 했어! 감사합니다
Yan Khonski

1
첫 번째 옵션 rebuild project은 내 문제에 효과적이었습니다. 감사합니다!
khwilo

1
.idea, .mvn 및 기타 대상 디렉토리를 제거한 다음 IntelliJ를 다시 시작했습니다. 이벤트 로그로 이동하여 프로젝트를 Maven 프로젝트로 추가 한 다음 @Kishore가 언급 한 단계를 수행했습니다. 지금 일하고 있습니다.
서니 셰카

105

위의 답변 중 어느 것도 효과가 없다면 intelliJ IDE를 닫고 프로젝트의 루트에서 intelliJ IDE 파일 및 폴더를 제거하십시오.

rm -rf .idea *.iml 

그런 다음 intelliJ로 프로젝트를 엽니 다. 지금 작동해야합니다.


1
이것은 나를 위해 일했습니다. 또한 프로젝트를 IntelliJ로 다시 가져 왔지만 "그룹 모듈"옵션의 경우 "명시적인 모듈 그룹 사용"대신 "자격있는 이름 사용"을 사용했습니다.
markhops

3
.idea폴더를 삭제하면 항상 JetBrains IDE의 모든 문제가 해결됩니다. :)
shelll

이것도 저에게 효과적이었습니다. 나는 Intellij의 열렬한 팬이지만 간단한 일을하는 법을 배워야합니다.
Zwakele Mgabhi

30 분 이상 낭비 마침내 내가 가지 작업을 만들기 위해해야 할 일을했을 것입니다
빈스을

이 페이지의이 방법 만이 저에게 효과적입니다.
zionpi

82

나에게 해결책은 프로젝트 설정에서 출력 디렉토리를 수정하는 것이 었습니다. 프로젝트 컴파일러 출력에 "target"만 사용하기 전에 대신 D : \ dev \ sigplusjava2_68 \ target과 같이 전체 경로를 갖도록 업데이트했습니다. 여기에 이미지 설명을 입력하십시오


10
도움이되지 못했습니다
Pavel

여기 내 솔루션이 실제로 @Ehsan의 대답에 미묘한 변형 일 수 있습니다. 아마도 대상 디렉토리를 지정하여 기본적으로 동일한 작업을 수행하는 모든 객체를 컴파일 할 수있는 새로운 위치를 제공합니다 Rebuild Project.
삼촌 Iroh

1
@UncleIroh 동일한 작업을 수행 한 경우 구성을 다시 작성하고 읽습니다. 처음에 문제를 해결했을 것입니다. 그렇지 않았지만 솔루션이 그랬습니다.
hyperum

이것이 정답입니다. 항상 나를 다시 버그 .. : p
크리스토퍼 재고

37

나는이 문제를 겪었고 태양 아래 에서이 사이트에서 생각할 수있는 모든 것을 시도했습니다.

원격 지점에서 가져온 후에 Java 클래스 중 어느 것도 선택되지 않았습니다. 모든 클래스에는 파란색 C가 아닌 프로젝트 계층 구조에서 이름으로 빨간색 J가 있습니다.

결국이 자습서를 따르려고 시도했지만 몇 가지 단계를 수행하여 설명되지 않은 문제를 해결했습니다. https://www.jetbrains.com/help/idea/creating-and-managing-modules.html

내가 한 일은 다음과 같습니다.

  1. 고토 파일 | 프로젝트 구조 또는 Crtl + Shift + Alt + S를 누릅니다.
  2. 프로젝트 설정 섹션에서 모듈을 선택하십시오.
  3. 소스 탭의 'Mark as :'행에서 소스를 클릭하십시오.
  4. 적용 버튼을 클릭하십시오.

어떤 이유로 든 모든 수업에는 파란색 C가있었습니다.

IntelliJ 및 / 또는 IDE가 어떻게 현상을 설명 할 수 있는지에 대해 더 잘 알고있는 사람이 있지만 이제는 모든 클래스와 더 중요한 것을 볼 수 있고 실행됩니다.


Intellij를 닫고 .idea 폴더를 제거한 다음 Intellij를 다시 열고 위의 단계를 수행 한 후에 만 ​​나에게 효과적이었습니다.
Shell_Leko

14

out폴더를 명시 적으로 만든 다음 출력 경로를C:\Users\USERNAME\IdeaProjects\PROJECTNAME\out

이처럼

outIntelliJ가 폴더를 만들 것으로 기대하지 않을 때 저에게 효과가있는 것처럼 보였습니다 .


또한 IntelliJ를 통해 새로운 실행 구성을 시도하십시오.

클릭하여 이전 것을 찾으십시오

! [구성 편집

그런 다음 제거하십시오

여기에 이미지 설명을 입력하십시오

알았어

이제 (중요 단계)에서 기본 메소드가 포함 된 클래스를 엽니 다. 왼쪽 프로젝트 창에서 클래스 이름을 클릭하면 가장 쉽게 수행 할 수 있습니다.

부여 '어 a를 Alt+ Shift+ F10당신은 얻을해야

이

이제 쳤다 Enter!

타다 ?? (작동 했습니까?)


실행 구성 작업은 특히 main()함수를에서 class Main다른 클래스 로 이동 한 경우 작동합니다 . 이 경우 위에 표시된대로 실행 구성을 편집하고 '주 클래스'값을 클래스 이름 (정규화 됨)으로 변경하십시오.
forumulator

"구성 편집"옵션 만 있고 작동하지 않습니다 (
Ver Nick

도움을 드릴 수 없었지만 프로젝트 이름을 감지하고 구성을 실행했지만 두 번째 스크린 샷
Jacob Schneider에서

14

캐시를 무효화하고 intellij를 다시 시작하면 효과가 있습니다. 첨부 된 그림과 같이 파일로 이동


7

나는 이것이 얼마 전에 요청되었다는 것을 알고 있지만, 나는이 문제를 극복하고 내 발견이 다른 사람들을 도울 것이라고 생각했습니다. 지적했듯이 오류 메시지는 기본적으로 out 폴더의 결과입니다. 프로그램을 실행하려고 할 때 먼저 코드를 컴파일하고 컴파일 된 결과를 외부 위치에 넣은 다음 컴파일 된 코드를 외부 위치에서로드하려고하기 때문입니다. 컴파일 된 코드가 예상 위치에 없으면 오류가 발생합니다.

특히 공유하고 싶은 점은 실행 구성이 구성 패널의 "시작하기 전에"섹션에서 "빌드"를 지정하더라도 코드가 컴파일 (빌드)되지 않는 경우가 있다는 것입니다.

언제 이런 일이 일어날 수 있습니까? 이러한 상황이 발생할 수있는 상황 중 하나는 모듈을 사용하고 있고 모듈 출력 디렉토리를 수동으로 삭제하는 경우입니다. 예를 들어, "foo"라는 모듈이 있으면 out / production 아래에 foo라는 디렉토리가 있어야합니다. 수동으로 삭제하면 빌드 시스템이 다시 빌드해야한다는 것을 모를 수 있습니다.

더 나쁜 것은 Build | 빌드 모듈 'foo', 여전히 모듈을 다시 빌드하지 못할 수 있습니다. 이 경우 모듈에서 파일 (예 : 'bar.java')을 선택한 다음 빌드 | 'bar.java'를 다시 컴파일하십시오. 이제 out 디렉토리 out / production / foo가 복원되어야합니다.

IntelliJ는 일반적으로 진행되는 모든 변경 사항을 알고 있기 때문에 놀랐고 알아내는 데 약간의 시간이 걸렸으므로 공유 할 것이라고 생각했습니다.


6

클래스 모듈을 확인하십시오 : intellij와 함께이 문제가 발생했습니다 : maven multi-module project가 있습니다. 문제는 구성 내에 모듈이 존재하지 않는 클래스를 실행한다는 것입니다. 따라서 올바른 모듈을 설정하면 문제가 해결됩니다 ( "구성 편집"-> "모듈 사용")

이것이 당신을 도울 수 있을까요


나도 일했다. 감사! IntelliJ 또는 Scala 플러그인의 업그레이드를 설치할 때 문제가 발생했을 수 있습니다. 나중에이 이상한 문제가 발생합니다. 매우 성 가시고 시간이 많이 걸립니다. JetBrains가 해결책을 찾길 바랍니다.
André van Delft

6

"src"폴더를 "Sources"로 표시해야했습니다. IntelliJ를 다시 시작하고 프로젝트를 다시 빌드 한 후 추가 문제없이 프로젝트를 실행할 수있었습니다 ( 스크린 샷 참조 ). 편집 : 파일-> 프로젝트 구조 또는 Ctrl + Shift + Alt + S를 눌러 "프로젝트 구조"탭에 액세스 할 수 있습니다.


1
나처럼 '소스'탭이 없으면 새 모듈을 추가하고 (녹색 + 클릭) 기본 폴더를 소스로 선택해야합니다. 아무것도 덮어 쓰지 않으며 src 폴더가 파란색으로 바뀝니다.
john ktejik

5

모듈 탭을 엽니 다 (Ctrl + Shift + Alt + S를 누름). 하나의 프로젝트에 두 개의 모듈이 있습니다. 두 번째 중복 모듈을 제거한 후 문제를 해결했습니다 (스크린 샷 참조).여기에 이미지 설명을 입력하십시오


4

클래스가 기본 폴더에있을 때, 즉 클래스가 패키지를 선언하지 않을 때 그러한 문제에 직면했습니다.

따라서 package org.me.mypackage;클래스 위에 패키지 문 (예 :)을 사용하면 문제를 해결해야한다고 생각합니다.


코드 줄을 복제합니까 ?? .. 필요한 경우 어떻게 수정합니까 ??
혼란

다음과 같이 자신 만의 패키지 이름을 사용하십시오.package org.confused.mailman;
Hakan Serce

패키지 선언은 IDE가 파일을 넣은 위치와 일치해야합니다. IDE가 파일을 sourceBase /에 넣지 org/confused/mailman않으면 해당 패키지 줄을 추가해도 도움이되지 않습니다.
QuantumMechanic

IDE 가이를 안내하고 권장 수정이 선택되면 자동으로 수정합니다.
Hakan Serce

도움이되지 않습니다 : / .. IDE가 내가 변경 한 내용으로 방해받지 않는 것 같습니다. 위의 오류가 발생하고 뒤로 앉아서 긴장을
풀고 있습니다

3

파일> 프로젝트 구조> 모듈> "src"폴더를 소스로 표시하십시오. 문제를 해결해야합니다. 또한 코드를 변경하거나 구성을 변경할 필요가 없도록 최신 언어가 선택되어 있는지 확인하십시오. 여기에 이미지 설명을 입력하십시오


2

필자의 경우 문제는 IntelliJ 업그레이드와 관련이있는 것 같습니다. 이 작업을 수행하면 이전 IntelliJ의 파일을 새로운 IntelliJ (2017 커뮤니티에서 2018 커뮤니티)의 파일로 덮어 썼습니다. 그 후 모든 프로젝트가 중단되었습니다. 이 스레드에서 모든 것을 시도했지만 그중 아무것도 작동하지 않았습니다. gradle을 최신 버전 (4 ~ 4.8)으로 업그레이드하려고 시도했지만 작동하지 않았습니다. 나를 위해 일한 유일한 것은 전체 IntelliJ 폴더를 삭제하고 다시 설치하는 것입니다. 그 후 모든 프로젝트가 효과가있었습니다.


이것은 실제로 그런 것 같습니다. 나는에서 같은 기본 폴더 이름을 바꿀 그래서 휴대용 인 IntelliJ를 사용 idea\bin할 수를 idea_old\bin폴더의 설정과 이름이 변경 %user%\username되는 .IntelliJIdea2018.2.IntelliJIdea2018.2_old신선한 새로운 휴대용 버전으로 사용을 시작하기 위해 다음 zip 파일 인 IntelliJ 추출 재를 봄에 (이 버전 2018년 2월 1일입니다) 여러 개의 분리 된 모듈 (부모 pom.xml에 링크되지 않음)의 부팅 응용 프로그램은 각각 자체 pom.xml 및 voila가있는 스프링 부팅 응용 프로그램입니다 !!! 스프링 부트 대시 보드를 통해 실행하기 전에 모든 작업, 대상 폴더 생성, 컴파일
Anddo

2

디렉토리를 소스 디렉토리로 표시하십시오. Ctrl + Shift + Alt + S를 통해 열림

여기에 이미지 설명을 입력하십시오


1

나를 위해-위의 옵션 중 몇 가지를 시도했지만 작동하지 않았습니다. 그런 다음 방금 Application 클래스의 이름을 변경했으며 intelliJ가 새로운 항아리를 작성하고 오류 메시지가 변경되기 시작했을 것입니다. 그런 다음 다시 이름을 바꾸고 작동했습니다.


1

나는 여기에 제안 된 모든 해킹을 시도했지만 아무 소용이 없습니다. 결국 나는 단순히 새로운 Maven 응용 프로그램을 만들고 pom.xml과 Java 파일 및 리소스를 하나씩 직접 복사했습니다. 이제 모두 작동합니다. 나는 IntelliJ를 처음 접했고 전혀 감동받지 않았지만 불안정한 상태로 만드는 것이 얼마나 쉬운 지.


intellij를 닫고 .idea 폴더 (아마도 숨겨진 파일)를 삭제해야합니다. 그런 다음 intellij에서 폴더를 다시 엽니 다. maven / grade 구성에 따라 intelli 프로젝트를 다시 초기화합니다.
제레미

1

여기에 이미지 설명을 입력하십시오

내용이 잘못된 modules.xml, 내 IDEA의 문제를 모르겠습니다.


1

다른 곳에서 많은 .JAVA 파일을 상속 받았으며 IDE에서 파일을 작동시키는 방법을 알 수 없었습니다. 궁극적으로 Main.JAVA 파일이있는 명령 줄로 이동하여 실행해야했습니다 javac Main.java. 이것은 많은 .CLASS 파일을 만들었습니다. 그런 다음 IDE는 무엇을해야할지 파악할 수있었습니다.


1

Scala / SBT를 사용할 때이 오류가 발생했습니다 . 모든 것이 올바르게 설정되었지만 IntelliJ가 기본 클래스를 찾을 수 없습니다. 내 해결책 : <user>/.sbt/<version>/plugins/target폴더를 삭제 한 다음 IntelliJ를 다시 시작하십시오.


1

Spring과 함께 IntelliJ를 사용하고 있으며 주 클래스는 JAR로 싸여 있습니다. Run / Debug 구성 대화 상자에서 ' "제공된"범위로 종속성 포함 "을 표시해야했습니다.


1

우리는 File / Project Structure에 있습니다. 답변은 다음과 같습니다.

"컨텐츠 루트"로 표시된 폴더에는 코드가있는 하위 폴더가 필요합니다. 또한 코드를 제외 된 것으로 표시하는 버튼을 찾으십시오. 어떤 단계와 무엇을 말하지 않고 배제 된 상태 인 틱 박스와 혼동하지 마십시오. ** 컴파일러가 배제 또는 런타임 배제입니까? 당신은 테스트하고 많이 운명입니다. 아이콘과 색상 외에는 틱 박스가 없습니다.

아이디어로서 우리는 그것이 원래 어떻게 작동하는지 생각해야합니다. 그들은 처음부터 제대로 작동하지 않았으며 조기 코디 애큘 레이션 스타일로 물건을 추가하기 시작했습니다. 수년이 지났으며 개선을 기대할 수 없습니다. 그러나 치료법으로 우리는 매번 올바르게 얻을 수있는 방법을 해킹 할 수 있습니다.


1

여기에서 확인할 수있는 또 다른 사항은 JVM에 전달되는 실제 명령이며 정상적으로 보이는지 확인하십시오. 실행 콘솔 상단으로 스크롤하면 첫 번째 줄이어야합니다.

Run Configuration VM Options (구성 VM 실행 옵션) 필드에 공백이 있으면 앱 시작 명령이 잘못되어이 오류 메시지가 나타날 수 있습니다.

-DsomeArgument="arg with space must be quoted"

감사 ! 이것은 나를 위해 일했다!!
Jcoder

0

Brad Turek의 솔루션에 대한 정교화 ... 기본 IntelliJ Java 프로젝트 템플릿 중 하나는 Main이라는 파일에 Mainmain () 메서드 진입 점 클래스를 정의해야 합니다. 메소드가 다른 파일 (및 클래스)에 포함 된 경우 실행을 변경 하십시오. 구성을 .

구성 창 실행

  1. IntelliJ에서 프로젝트를 연 상태에서 Run : Edit Configurations ... 메뉴를 사용하여 빌드 구성 창을 엽니 다.
  2. Main 클래스에 대한 항목에 main () 입력 방법을 노출하는 클래스를 포함하는 파일 이름이 나열되지 않으면 올바른 파일 이름을 입력하십시오. 이미지의 구성이 잘못되어 구성 패널에서 빨간색으로 표시됩니다.
  3. main () 입력 방법은 클래스 (및 파일) ScrabbleTest에 있습니다. 따라서 Main class :ScrabbleTest로 변경 하면 런타임 오류가 수정됩니다.

다른 사람들이 언급했듯이 새로운 구성을 사용하여 다시 빌드 해야 합니다. 패키지를 사용하고 있지만 IME에 차이가없는 것 같습니다. 도움이 되었기를 바랍니다.


0

필자의 경우 모듈의 build.gradle에서 mainClassName 할당은 정규화 된 클래스 이름을 명시해야합니다. 기본 클래스의 소스 코드 파일에서 패키지 이름으로 지정됩니다.


0

메인 클래스가 올바르게 설정되어 있으면 프로젝트를 다시 빌드하고 (CTRL + F9) 다시 확인 (구성 편집)하고 모듈 (있는 경우)


0

간단한 해결책은 프로젝트의 루트 폴더 인 명령 줄의 백업 폴더로 이동합니다. 컴퓨터에 SBT가 설치되어 있어야합니다.

sbt를 설치 한 경우 "sbt package"명령을 실행하십시오. 프로젝트가 성공하면 다시 컴파일하고 작동하는 intelliJ로 돌아옵니다.


SO에 오신 것을 환영합니다! 답에 답할 때, 옳다면 이브를 조금 설명해보십시오.
David García Bodego

0

제 경우에는 (상대적으로) 긴 vm 인수가 구성되었습니다. 이러한 인수를 가능한 한 환경 변수로 변환하면 문제가 해결되었습니다.


당신은 인수 주위에 "따옴표"를 넣어하지 않는 한 당신은 당신의 VM 옵션에 공백을 가질 수 없습니다

0

필자의 경우 코드가 프로젝트의 / src 디렉토리에있을 때 응용 프로그램이 잘 실행됩니다. 나중에 / src 다음에 / main / java 디렉토리를 추가 한 후 "주 클래스를 찾거나로드 할 수 없습니다 ..."오류가 발생했습니다. 그 당시에는 실행 구성에 /src/main/java/YourMain.java를 추가 할 수 없었습니다. 실행 한 구성을 제거하고 프로젝트-> 모듈 설정 열기 (또는 프로젝트 패널을 클릭 한 후 F4)-> 프로젝트 설정-> 모듈 삭제 (x) 이전 컨텐츠 루트 및 + 컨텐츠 루트 추가를 마우스 오른쪽 버튼으로 클릭하고 / src / main / java를 선택하십시오. 프로젝트를 다시 빌드하면 실행됩니다.


0

패키지를 잘못 지정했을 수 있으며 패키지 계층 구조가 올바르지 않을 수 있습니다. 아래를 봐

여기에 이미지 설명을 입력하십시오

이 경우 그 아이디어는 잘못된 길을 강조 할 것입니다.


0

내 경우에는, 그것은 받는다는 프로젝트, I하다 다시 가져온 받는다는 (오른쪽 클릭 의 pom.xml 파일을 클릭 다시 가져 오기를 ) 즉시 일이다 그.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.