Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java:기본 클래스를 찾거나 로드할 수 없음

Java로 작업할 때 코드의 최종 실행은 미리 컴파일된 클래스를 통해 발생합니다. Java로 클래스를 작성하면 컴파일러는 상위 수준 소스 코드를 바이트 코드라고 하는 하위 수준 체계로 변환합니다. 작성하는 각 클래스에 대해 미리 컴파일된 바이트코드의 인스턴스가 생성됩니다. 이 바이트 코드에는 Java Virtual Machine에서 실행할 수 있는 하위 수준 코드가 포함되어 있습니다.

그러나 때때로 Java 터미널 명령을 실행하면 could not find or load main class과 같은 내용이 반환되는 상황이 발생할 수 있습니다. . 이것은 클래스의 바이트 코드에 문제가 있음을 나타냅니다. 하지만 어떻게 수정합니까? 알아봅시다.

'메인 클래스를 찾거나 로드할 수 없음'은 무엇을 의미합니까?

could not find or load main class 오류 코드 디자인에 몇 가지 문제가 있음을 나타냅니다. 일반적으로 터미널에서 다음과 같은 명령을 실행하여 Java 프로그램을 실행할 때 발생합니다.

java Test

여기서 "Test"는 실행해야 하는 코드가 포함된 클래스의 이름입니다. could not find or load main class에 직면하는 경우 오류는 Test 클래스에 대한 바이트 코드를 찾을 수 없음을 의미합니다.

'메인 클래스를 찾거나 로드할 수 없음' 오류를 수정하는 방법

오류를 수정할 수 있는 몇 가지 방법이 있습니다. 다음은 could not find or load main class을 식별하고 수정하는 몇 가지 주요 방법입니다. :

오타 확인

이 오류의 가능한 첫 번째 원인은 입력 실수일 수 있습니다. 프로그램 호출의 구문은 "java"와 클래스 이름이라는 두 개의 키워드로 구성되어 있기 때문에 실수할 수 있는 곳은 클래스 이름뿐입니다. 키워드에 오타가 있으면 명령줄에 명백한 "명령을 찾을 수 없음" 오류가 표시됩니다.

입력 실수에 대해 클래스 이름을 다시 확인할 수 있습니다. 종종 그러한 오류는 어리석은 철자와 입력 실수에서 비롯됩니다.

"Test.java" 파일에 "Test"라는 클래스를 작성했다고 가정해 보겠습니다. 이것은 일반적으로 명령줄을 통해 컴파일하는 방법입니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

javac Test.java

그런 다음 다음 명령을 실행하여 실행합니다.

java Test

이렇게 하면 프로그램이 제대로 실행될 것입니다. 그러나 위 명령에서 "Test"의 철자를 틀리면 could not find or load main class이 표시될 수 있습니다. 오류.

응용 프로그램의 잘못된 클래스 경로

응용 프로그램의 클래스 경로가 이 오류를 일으킬 수 있는 여러 가지 방법이 있습니다. 클래스 경로(CLASSPATH로 작성됨)는 시스템에서 사용자 클래스가 저장되는 위치를 가리키는 환경 변수입니다. 클래스 경로가 가리키는 디렉터리에는 코드에서 직접 가져올 수 있는 미리 작성된 여러 클래스가 포함되어 있습니다.

다음 가져오기 명령을 작성했다고 가정해 보겠습니다.

Import org.company.Foo;

이것을 실행하면 JVM이 /org/company/Foo.java 위치에서 "Foo" 클래스를 찾습니다. 보시다시피 클래스 경로가 잘못된 주소를 가리키는 경우 JVM은 사용자가 찾고 있는 클래스를 찾을 수 없으므로 could not find or load main class을 throw합니다. 오류.

때로는 클래스 경로에 프로그램이 의존하는 모든 시스템 클래스가 포함되어 있지 않을 수 있습니다. 이것은 아직 다운로드하거나 설정하지 않은 패키지의 클래스를 포함하려고 할 수 있음을 의미합니다. 이 경우에도 이 오류가 발생합니다.

클래스가 잘못된 패키지로 선언되었습니다.

소스 코드 파일 위에 작성된 패키지가 클래스가 선언된 패키지/모듈을 가리키지 않는 경우. 대부분의 IDE는 린팅 프로세스에서 오류를 표시하여 이를 매우 쉽게 알아낼 수 있도록 도와줍니다. 단, 눈이 미끄러지면 위와 같은 오류가 발생합니다.

이 문제에 대한 가장 좋은 해결책은 항상 클래스의 패키지 이름이 올바른 패키지를 가리키는지 확인하는 것입니다. IntelliJ 또는 VSCode와 같은 고급 IDE를 사용하는 경우 이 문제에 대해 Linting을 활성화해야 합니다.

예를 들어 project/src/com/foo/bar에 저장된 다음 클래스의 예를 살펴보겠습니다.

package com.foo.baz;
class Bar {
  // Some code here
}

보시다시피 패키지는 com/foo/baz를 가리키고 클래스는 실제로 com/foo/bar에 저장됩니다. 이 문제를 해결하려면 올바른 패키지를 가리키도록 패키지 문을 업데이트해야 합니다.

package com.foo.bar;
class Bar {
  // Some code here
}

결론

이 기사에서는 Could not find or load main class 항목을 살펴보았습니다. Java에 있으며 왜 발생하는지. 그런 다음 could not find or load main class을 수정하는 몇 가지 주요 방법을 식별하여 토론을 마쳤습니다. 오류.

Java로 프로그램을 작성하려는 경우 이 오류가 때때로 나타날 수 있습니다.

오류 메시지가 매우 무섭게 보일 수 있지만 해결하는 것은 그리 어렵지 않습니다. 찾고 있는 수업이 올바른 위치에 있는지 확인하기만 하면 됩니다.