패키지에서 Java 클래스 실행 --> 오류: 기본 클래스를 찾거나 로드할 수 없습니다.

패키지에서 Java 클래스 실행 --> 오류: 기본 클래스를 찾거나 로드할 수 없습니다.

javac 및 java 명령을 사용하여 터미널에서 Java 클래스를 컴파일하고 실행하는 방법을 배우고 있습니다. 문제 없이 단일 클래스를 컴파일하고 실행할 수 있지만 클래스를 패키지에 넣고 실행하려고 하면 "오류: 기본 클래스(클래스 이름)을 찾거나 로드할 수 없습니다."라는 메시지가 나타납니다.

현재 내 디렉토리 구조는 다음과 같습니다. ~/Desktop/OCA_Practice/cert내가 실행 중인 파일의 이름은 이며 Test.java, 이 파일을 이라는 패키지에 배치했습니다 cert. 내 아주 기본적인 수업은 다음과 같습니다.

package cert;
public class Test {
    public static void main(String args[]) {
        System.out.println("This is a test.");
    }
}

cert 디렉토리에서 명령을 실행하면 javac Test.java클래스가 성공적으로 컴파일되지만 java Test컴파일 후 실행하려고 하면 오류가 발생합니다. 프로그램을 실행하려고 하면 클래스 외에도 java Desktop.OCA_Practice.cert.Test에 표시된 대로 폴더 구조를 실행하려고 하는데 작동하지 않습니다. 클래스의 패키지 선언을 다음으로 변경했지만 Desktop.OCA_Practice_Probs.cert그 중 하나도 작동하지 않습니다.

나는 성공하지 못한 채 다양한 방법을 시도했습니다. 클래스 파일에 패키지 이름을 잘못 썼나요? 명령을 실행했습니다. java -version실행 중인 것으로 표시 java version "1.8.0_25"되므로 클래스 경로가 올바르게 설정되었다고 확신합니다.

어떤 답변이라도 미리 감사드립니다.

답변1

Java에서 클래스를 실행할 때 폴더 및 파일 이름과 일치하도록 올바른 위치에 전체 패키지 이름과 클래스 이름을 제공해야 합니다.

따라서 귀하의 경우 package cert;원래대로 클래스에서 선언하고 빌드한 후 다음과 같이 실행하십시오.

cd ~/Desktop/OCA_Practice
java cert.Test

답변2

패키지의 클래스를 실행하려면 항상 패키지의 상위 디렉터리에서 클래스를 실행하세요.
귀하의 경우 다음 명령을 사용하여 OCA_Practice 디렉터리에서 터미널을 엽니다.
cd ~/데스크탑/OCA_Practice
그런 다음 java 뒤에 패키지 이름을 사용하여 명령을 통해 클래스 파일을 실행합니다.
자바 인증서 테스트

관련 정보