기본 클래스 Java를 찾거나 로드할 수 없습니까? 해결 방법은 다음과 같습니다.

기본 클래스 Java를 찾거나 로드할 수 없습니까? 해결 방법은 다음과 같습니다.

명백한 이유 없이 Java 프로젝트에서 기본 클래스를 찾을 수 없음 오류가 계속 발생하더라도 걱정하지 마십시오. 혼자가 아닙니다.





가장 예측할 수 없고 자발적인 오류 중 하나인 JVM(Java Virtual Machine)의 기본 클래스 경로를 고수하는 경향 덕분에 '메인 클래스를 찾을 수 없음' 문제는 아마추어와 전문가 모두를 괴롭히는 문제입니다.





그러나 이 문제는 실제로 보이는 것보다 덜 위협적입니다. 이 오류를 완전히 제거하는 방법을 알아보려면 계속 읽으십시오.





메인 클래스를 찾을 수 없는 이유는 무엇입니까?

JVM이 메인 클래스를 찾지 못한 방법과 이유를 이해하기 전에 클래스패스 자바에서.

클래스패스란?

클래스 경로는 Java 런타임 환경에서 클래스 및 기타 리소스 파일을 검색하는 파일 경로입니다. 다음 중 하나를 사용하여 설정할 수 있습니다. -클래스 경로 프로그램을 실행하거나 시스템을 설정할 때 옵션 클래스패스 환경 변수.



이름에서 알 수 있듯이 단순히 파일 경로가 .수업 파일은 JDK 패키지 또는 디렉토리에서 찾을 수 있습니다.

JVM이 메인 클래스를 찾을 수 없을 때, 그것은 종종 해당 클래스를 찾고 있기 때문입니다. .수업 잘못된 클래스 경로에 있는 파일. 물론 이 문제를 해결하는 방법은 패키지를 사용하거나 클래스 경로를 지정하여 수동으로 클래스 경로를 지정하는 것입니다.





이 시점에서 Java 클래스에 대한 기억을 새로 고치려면 다음 가이드를 확인하십시오. 자바에서 클래스 생성 .

다른 노트북으로 노트북 충전하는 방법

패키지 사용

라는 클래스를 만들어 봅시다. 시험 . 라는 패키지에 넣습니다. 테스트 패키지 . 패키지는 유사한 클래스를 함께 그룹화하거나 클래스에 고유한 네임스페이스를 제공하기 위해 Java에서 사용됩니다.





이 간단한 예에서 패키지를 사용하면 Java의 클래스 경로가 작동하는 방식을 시각화하는 데 도움이 됩니다. 파일 관리자 응용 프로그램에서 패키지는 독립 폴더로 표시됩니다.

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

이제 새 터미널을 열고 작업 디렉토리가 패키지 폴더를 포함하는 디렉토리와 동일한지 확인하십시오. 다음을 사용하여 작업 디렉토리를 변경할 수 있습니다. CD 모든 운영 체제에서 명령.

엮다 테스트.자바 다음 명령을 실행하여:

package testPackage;
javac testPackage/Test.java

컴파일된 바이너리 파일(.class 파일)이 testPackage에 저장됩니다.

컴파일된 클래스를 실행하려면 명령줄에 정규화된 클래스 이름을 입력해야 합니다. Java 클래스의 정규화된 이름은 패키지 이름이 접두사로 붙은 이름을 참조합니다. 이 경우 다음과 같아야 합니다.

java testPackage.Test

클래스 파일을 호출하는 이 방법을 사용하면 동일한 작업 디렉토리의 다른 패키지에서 실행 파일을 호출할 수도 있습니다. 정규화된 클래스 이름을 수정하기만 하면 됩니다.

고급 구현에서는 패키지 내의 파일을 더 잘 관리하기 위해 클래스 및 소스 파일에 대해 별도의 하위 폴더를 만드는 것이 좋습니다.

수동으로 클래스 경로 지정

Java 파일을 관리하는 권장 방법은 소스 파일과 클래스에 대해 별도의 디렉토리를 만드는 것입니다. 프로젝트를 진행 중이라면 이미 이 작업을 하고 있을 가능성이 큽니다.

일반적으로 소스 파일이 있는 디렉토리는 다음과 같이 레이블이 지정됩니다. src .class 파일이 있는 파일은 다음과 같이 레이블이 지정됩니다. 클래스. 이것은 또한 적절하게 구조화된 디렉토리로 인해 JVM이 기본 클래스를 찾지 못할 가능성을 크게 줄이는 방법이기도 합니다.

이 방법을 사용하면 컴파일하기 전에 디렉토리 구조가 다음과 같이 보일 것입니다.

내 외장 하드 드라이브가 표시되지 않는 이유
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

위 그림의 모든 들여쓰기는 프로젝트가 따라야 하는 파일 계층 구조의 한 수준에 해당합니다.

이것을 컴파일하려면 작업 디렉토리가 myFolder인지 확인하십시오. 이제 다음 명령을 입력합니다.

javac -d classes src/testPackage/Test.java

NS .수업 실행 파일은 다음 위치에 저장해야 합니다. myFolder/classes/testPackage . 따라서 파일 디렉토리 구조는 다음과 같습니다.|_+_|

실행하려면 .수업 파일에서 정규화된 클래스 이름으로 Java 명령을 실행하고 로컬 클래스 경로를 지정하십시오. 모든 경로는 작업 디렉토리(이 경우 myFolder)를 기준으로 선언됩니다.

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

이 명령을 실행하면 원하는 출력을 얻을 수 있습니다. 그런데 단순한 오류를 풀기 위해 왜 그렇게 많은 개편이 필요한 것일까?

Java에서 파일 구성의 중요성

'메인 클래스를 찾을 수 없거나 로드할 수 없음'이 발생하는 바로 그 이유는 JVM이 .수업 파일이 저장되고 있었습니다.

이 오류를 해결하는 가장 쉬운 방법은 .class 파일이 저장되는 위치를 제어하고 명시적으로 JVM에 해당 파일을 찾도록 지시하는 것입니다. 이것은 소스 파일과 실행 파일을 별도로 구성하고 작업 디렉토리에서 모든 것을 제어함으로써 가능합니다.

다음과 같은 구성을 추가하기 시작하면 계승 프로젝트의 경우 파일 시스템 복잡성이 증가할 수밖에 없습니다. 이러한 프로젝트 또는 JAR 파일 또는 사용자 정의 라이브러리의 사용이 필요한 프로젝트에서도 파일을 분리하고 관리하는 간단한 방법으로 문제 해결 및 디버깅에 드는 수많은 시간을 절약할 수 있습니다.

Java에서 classpath가 작동하는 방식과 코드 실행과 관련하여 제어할 수 있는 다양한 항목에 대해 자세히 알아보려면 Oracle의 상세하고 사용자 친화적인 참조 .

공유하다 공유하다 트위터 이메일 신입 프로그래머를 위한 10가지 최고의 초급 프로젝트

프로그래밍을 배우고 싶지만 어디서부터 시작해야 할지 모르십니까? 이러한 초심자 프로그래밍 프로젝트와 튜토리얼이 시작될 것입니다.

저전력 모드 아이폰이란?
다음 읽기 관련 항목
  • 프로그램 작성
  • 자바
저자 소개 야시 첼라니(10편 게재)

Yash는 물건을 만들고 기술에 관한 모든 것을 쓰는 것을 좋아하는 컴퓨터 공학을 꿈꾸는 학생입니다. 여가 시간에는 스쿼시를 하고 최신 Murakami 사본을 읽고 Skyrim에서 드래곤을 사냥하는 것을 좋아합니다.

Yash Chellani가 참여한 작품 더보기

뉴스레터 구독

기술 팁, 리뷰, 무료 전자책 및 독점 거래에 대한 뉴스레터에 가입하십시오!

구독하려면 여기를 클릭하세요.