어떻게 해결하나요? 해결 방법은 다음과 같습니다.
1. 실행 단계에서 문제가 발생하므로 환경 변수의 부적절한 구성, 즉 클래스 경로가 잘못 구성되어 .class 파일이 발생할 수 있습니다. 로드에 실패합니다. 그러면 이때 클래스패스 경로가 설정되어 있는지 확인할 수 있습니다. 일반적으로 클래스패스 경로 설정은 다음과 같습니다.
.;%java_home%\lib;%java_home%\lib\tools.jar; (이전의 . 및; 둘 다 필수입니다.)
여기서 는 현재 경로를 나타내고 ;는 구분 기호를 나타냅니다.
2. 여러 번 시도했고 클래스 경로가 올바르게 구성되었으나 여전히 이 오류가 발생하는 경우 사용하는 테스트 코드가 특정 패키지 이름에 속하는지 주의하세요.
예를 들어 다음 테스트 코드는 다음과 같습니다.
파일이 있는 현재 디렉터리에서 javac TestPlusPlus.java를 실행하면 성공적으로 컴파일되고 TestPlusPlus.class 파일이 생성됩니다.
javaTestPlusPlus를 사용하고 있습니다. 프로그램을 실행하려고 하면 "메인 클래스를 찾을 수 없거나 로드할 수 없습니다."라는 오류가 항상 나타납니다. 이때 주의할 점은
찾을 수 없는 이유는 TestPlusPlus가 HelloWorld 패키지 이름 아래에 있기 때문입니다.
해결책:
1. "package?HelloWorld;"를 제거하고 javac로 TestPlusPlus.java를 다시 컴파일한 다음 javaTestPlusPlus를 실행합니다.
2. 동일한 패키지 이름으로 새 폴더를 만듭니다. 이 예에서는 HelloWorld 폴더를 만들려면 TestPlusPlus.java 파일을 이 디렉터리로 이동합니다.
그런 다음 HelloWorld 폴더와 동일한 수준에서 DOS 명령 창을 열고 javacHelloWorld/TestPlusPlus.java 컴파일러를 실행하고
javaHelloWorld/TestPlusPlus를 실행합니다(또는 javaHelloWorld.TestPlusPlus도 허용됨). ) , 패키지 이름이 포함된 Java 프로그램을 실행할 수 있습니다.
참고: 패키지 이름에는 '.'(점), ' '(공백) 등과 같은 특수 기호가 포함되어서는 안 됩니다. 이 경우 명령줄에서는 패키지 사이의 분리 지점을 결정할 수 없습니다. name이고 Java 프로그램 이름은 입니다.
결과적으로 메인 클래스를 여전히 찾을 수 없거나 로드할 수 없습니다.
원리 설명:
Java 프로그램은 클래스 파일을 실행합니다. 패키지 이름이 있는 클래스의 경우 Java는 패키지 이름을 폴더로 취급합니다. 파일 폴더 디렉터리 + 클래스 이름"을 사용하여 클래스를 찾습니다.