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 뒤에 패키지 이름을 사용하여 명령을 통해 클래스 파일을 실행합니다.
자바 인증서 테스트