>  기사  >  Java  >  Java "메인 클래스를 찾거나 로드할 수 없습니다" 오류 메시지를 해결하는 방법

Java "메인 클래스를 찾거나 로드할 수 없습니다" 오류 메시지를 해결하는 방법

王林
王林앞으로
2023-04-24 16:37:087469검색

머리말

일반적으로 우리는 코드를 편집하고 디버그하기 위해 eclipse, Manven, Android Studio, sublime, vim, notepad, notepad 등과 같은 도구를 사용합니다.
eclipse android studio 등을 사용하여 프로젝트 및 Java 클래스 파일을 만들면 모두 패키지 이름이 있습니다. 도구를 사용하여 정상적으로 컴파일되고 실행되지만 실행을 위해 명령줄로 전환하면
javac xxx.java
java xxx
그럴 확률이 매우 높습니다 找不到或无法加载主类

처음 Java를 배울 때 클래스 파일에 패키지 이름(패키지)이 설정되어 있지 않습니다. 이 경우 클래스 경로에 주의해야 하며 기본적으로 문제가 없습니다. 하지만 도구(eclipse, android studio)를 사용하여 코드를 작성할 때 코드 파일의 위치는 패키지 이름으로 구분된 디렉터리에 있습니다. 이는 상대적인 실제 디렉터리(com/eagle/app)이며 코드에 명시되어 있습니다. 패키지 이름이 없으면 가상 디렉터리(com.eagle.app)로 간주될 수 있습니다. 본 글에서는 클래스패스와 시스템 환경변수 PATH에 문제가 없을 때 발생하는 오류의 원인과 올바른 해결방법을 주로 설명합니다.
코드 파일은 다음과 같이 매우 간단합니다.

package com.eagle.app;

public class MainJava {
	public static void main(String[] args) {
        if (args != null) {
            for (String arg : args) {
                System.out.println("arg = " + arg);
            }
            System.out.println("arg = " + args);
        } else {
            System.out.println("args = " + null);
        }
}

javac xxx.java 컴파일에는 상대 물리적 경로가 필요합니다

Java 메인 클래스를 찾거나 로드할 수 없습니다 오류 메시지를 해결하는 방법

위에서 살펴본 것처럼 Android 스튜디오를 예로 들면
1. , 그러나 코드의 "src" 디렉토리가 아닌 전체 앱의 파일을 포함합니다. Eclipse의 경우 src 디렉토리는 코드 디렉토리입니다.
2 이는 코드의 "src" 디렉토리이며 패키지 이름 com/eagle/app에 해당하는 "디렉토리"가 있습니다

MainJava를 컴파일하려면

//cd 到app目录
javac MainJava.java

또는

//cd  到eagle 目录
javac  app/MainJava.java

또는

//cd 到main目录
javac  java/com/eagle/app/MainJava.java
를 사용하세요.

다 괜찮아요. 물론 임의의 위치 + 상대 디렉터리가 될 수 있습니다.

다시 돌아가서 설명하겠습니다. 현재 실행 중인 디렉터리(예: 앱 디렉터리, Eagle 디렉터리, 기본 디렉터리)를 기준으로 하면 실제 경로는 유효한 컴퓨터 경로(xxx/xxx/xxx)이므로 이름은 물리적 경로.

무슨 일이 생기면 경로가 잘못된 게 틀림없어요.
비고: 코드 디렉터리는 새 코드 파일을 생성할 때 패키지 이름의 시작 디렉터리를 기준으로 결정됩니다.

Java xxx 실행에는 가상 경로가 필요합니다.

좀 강조하자면, 패키지 이름은 virtual입니다. 경로: xxx.xxx.xxx , "/"로 구분된 디렉터리가 아니므로 가상 경로라고 합니다.

Java 메인 클래스를 찾거나 로드할 수 없습니다 오류 메시지를 해결하는 방법

위 그림에서 2는 Java 코드이고 1은 도구 컴파일로 생성된 바이트코드 파일입니다. 이제 MainJava.class를 실행하려면 올바른 명령은 다음과 같습니다. 1의 기본 디렉터리에
//cd 더 이상 com이나 하위 디렉터리가 아닙니다

F:\GSProject>cd javatest\build\classes\java\main

F:\GSProject\javatest\build\classes\java\main>java com.eagle.app.MainJava

참고: .class를 가져오지 마세요(java com.eagle.app.MainJava.class는 올바르지 않습니다). 다른 디렉터리로 변경하거나 상대 디렉터리를 사용하여 실행하려고 하지 마세요. java 명령은 다음을 인식합니다. 매개변수는 패키지 이름입니다.
다음은 모든 오류입니다

F:GSProjectjavatestbuildclassesjavamain>java com.eagle.app.MainJava.class
오류: 메인 클래스 com.eagle.app.MainJava.class를 찾을 수 없거나 로드할 수 없습니다

F :GSProjectjavatestbuildclassesjava> ;java maincom.eagle.app.MainJava
오류: 메인 클래스 maincom.eagle.app.MainJava를 찾을 수 없거나 로드할 수 없습니다

자, 이제 위 그림에서 1로 표시된 디렉토리를 javatest 디렉토리에서 java com.eagle.app.MainJava

Java 메인 클래스를 찾거나 로드할 수 없습니다 오류 메시지를 해결하는 방법

Java 메인 클래스를 찾거나 로드할 수 없습니다 오류 메시지를 해결하는 방법

F:\GSProject\javatest>java com.eagle.app.MainJava
arg = [Ljava.lang.String;@75b84c92

을 실행한 결과, 메인 함수의 매개변수 주소가 정상적으로 출력되었습니다. 바이트코드를 마음대로 실행하고 이를 Linux나 Mac에 넣고 원하는 작업을 행복하게 수행할 수 있음을 알 수 있습니다.

1의 디렉터리 구조는 com.eagle.app 패키지입니다. javac 파일 경로가 **/xxx/xxx/xxx/Name.java**이고
java 파일 경로가 xxx인지 확인하세요. .xx.x.이름 , 수업 가져오지 마세요.

위 내용은 Java "메인 클래스를 찾거나 로드할 수 없습니다" 오류 메시지를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제