Java에서 패키지가 존재하지 않음 오류 해결

Mehvish Ashiq 2023년10월12일
  1. Java에서 패키지가 존재하지 않음 데모
  2. Java에서 패키지가 존재하지 않음 오류 해결
Java에서 패키지가 존재하지 않음 오류 해결

오늘 우리는 오류와 그 이유를 이해하기 위해 Java에서 패키지가 존재하지 않습니다 오류를 재현합니다. 또한 코드 예제를 통해 솔루션에 대해 알아봅니다.

Java에서 패키지가 존재하지 않음 데모

예제 코드(Students.java 파일):

package name;

public class Students implements Comparable<Students> {
  private String studentFirstName;
  private String studentLastName;

  public Students(String studentFirstName, String studentLastName) {
    this.studentFirstName = studentFirstName;
    this.studentLastName = studentLastName;
  }

  public String getStudentFirstName() {
    return studentFirstName;
  }

  public void setStudentFirstName(String studentFirstName) {
    this.studentFirstName = studentFirstName;
  }

  public String getStudentLastName() {
    return studentLastName;
  }

  public void setStudentLastName(String studentLastName) {
    this.studentLastName = studentLastName;
  }

  /**
   *
   * @param other
   * @return
   */
  @Override
  public int compareTo(Students other) {
    int compareResults = this.studentLastName.compareTo(other.studentLastName);

    if (compareResults == 0) {
      if (this.studentFirstName.chars().count() == other.studentFirstName.chars().count()) {
        compareResults = 0;
        return compareResults;
      } else if (this.studentFirstName.chars().count() > other.studentFirstName.chars().count()) {
        compareResults = 1;
        return compareResults;
      } else {
        compareResults = -1;
        return compareResults;
      }
    } else {
      return compareResults;
    }
  }
}

예제 코드(StudentMain.java 파일):

import names.Students;

public class StudentMain {
  public static void main(String[] args) {
    Students student1 = new Students("Ali", "Ashfaq");
    Students student2 = new Students("Ali", "Ashfaq");
    System.out.println("Comparison 1: " + student1.compareTo(student2));

    Students student3 = new Students("Ali", "Ashfaq");
    Students student4 = new Students("Zoya", "Ashfaq");
    System.out.println("Comparison 2: " + student3.compareTo(student4));

    Students student5 = new Students("Mehr-un-nissa", "Ashfaq");
    Students student6 = new Students("Hina", "Ashfaq");
    System.out.println("Comparison 3: " + student5.compareTo(student6));
  }
}

main() 메서드를 포함하는 파일을 제외한 모든 .java 파일이 있는 Desktop/java/stuff/com/name 디렉토리가 있습니다. 위의 코드 예제에서 Students.javaDesktop/java/stuff/com/name 디렉터리에 있고 StudentMain.javamain() 메서드는 Desktop/java/에 있습니다. stuff/com 디렉토리.

Desktop/java/stuffCLASSPATH로 설정했다는 점도 중요합니다.

오류와 그 원인을 파악하기 위해 코드를 이해합시다.

위의 코드는 Students의 성을 비교하고 결과를 compareResults 변수에 저장합니다. 이 결과는 이름을 비교하는 데 더 사용됩니다. 어떻게?

성이 일치하면 결과는 true0을 의미합니다. 따라서 if 조건으로 이동하여 이름의 문자 수가 일치하는지 평가합니다.

이름을 비교한 결과는 다음 조건을 기반으로 합니다.

  1. this.countother.count와 같으면 결과는 0이 됩니다.
  2. this.countother.count보다 크면 결과는 1이 됩니다.
  3. this.countother.count보다 작으면 결과는 -1이 됩니다.

그러나 프로그램을 컴파일하려고 하면 다음과 같은 오류가 발생합니다.

C:\Users\MEHVISH ASHIQ\Desktop\java\stuff\com>javac StudentMain.java
StudentMain.java:1: error: package names do not exist
import names.Students;

그것은 무엇을 의미하며 왜 우리는 이 문제에 직면하고 있습니까? 이 오류는 가져오려는 패키지가 존재하지 않음을 의미합니다.

여기에는 여러 가지 이유가 있을 수 있으며 모두 아래에 나열되어 있습니다.

  1. 잘못된 패키지를 가져왔거나 패키지를 가져오는 동안 오타가 있을 수 있습니다.

  2. 모든 파일이 올바른 하위 디렉토리에 있는지 다시 확인하십시오.

  3. CLASSPATHDesktop/java/stuff로 설정한 경우 package name;으로 정의된 파일 Desktop/java/stuff/com/name 디렉토리에 있어야 합니다. CLASSPATH 설정 방법을 알아보려면 this를 확인하십시오.

  4. 모든 Java 소스 파일이 올바른 하위 디렉토리에 있는지 확인하십시오. 또한 Java 소스 파일이 Desktop/java/stuff/com/name 디렉토리에 컴파일되었는지 확인해야 합니다.

    왜? .class 파일은 CLASSPATH에 있어야 합니다. .java 파일은 CLASSPATH가 아니라 SOURCEPATH에 있어야 하며 .class 파일은 javac 명령을 사용하여 파일을 컴파일할 때 생성됩니다.

  5. 내장 패키지를 제대로 사용하지 않으면 이 오류가 발생합니다. 다음 코드를 참조하십시오.

예제 코드:

public class Test {
  public static void main(String[] args) {
    /*
    Solution: This line must be as follows:
    System.out.println("Hi!");
    */
    system.out.println("Hi!");
  }
}

오류 설명:

Test.java:3: error: package system does not exist
                system.out.println("Hi!");
                      ^
1 error

Java에서 패키지가 존재하지 않음 오류 해결

예제 코드(Students.java 파일):

package name;

public class Students implements Comparable<Students> {
  private String studentFirstName;
  private String studentLastName;

  public Students(String studentFirstName, String studentLastName) {
    this.studentFirstName = studentFirstName;
    this.studentLastName = studentLastName;
  }

  public String getStudentFirstName() {
    return studentFirstName;
  }

  public void setStudentFirstName(String studentFirstName) {
    this.studentFirstName = studentFirstName;
  }

  public String getStudentLastName() {
    return studentLastName;
  }

  public void setStudentLastName(String studentLastName) {
    this.studentLastName = studentLastName;
  }

  /**
   *
   * @param other
   * @return
   */
  @Override
  public int compareTo(Students other) {
    int compareResults = this.studentLastName.compareTo(other.studentLastName);

    if (compareResults == 0) {
      if (this.studentFirstName.chars().count() == other.studentFirstName.chars().count()) {
        compareResults = 0;
        return compareResults;
      } else if (this.studentFirstName.chars().count() > other.studentFirstName.chars().count()) {
        compareResults = 1;
        return compareResults;
      } else {
        compareResults = -1;
        return compareResults;
      }
    } else {
      return compareResults;
    }
  }
}

예제 코드(StudentMain.java 파일):

import name.Students;

public class StudentMain {
  public static void main(String[] args) {
    Students student1 = new Students("Ali", "Ashfaq");
    Students student2 = new Students("Ali", "Ashfaq");
    System.out.println("Comparison 1: " + student1.compareTo(student2));

    Students student3 = new Students("Ali", "Ashfaq");
    Students student4 = new Students("Zoya", "Ashfaq");
    System.out.println("Comparison 2: " + student3.compareTo(student4));

    Students student5 = new Students("Mehr-un-nissa", "Ashfaq");
    Students student6 = new Students("Hina", "Ashfaq");
    System.out.println("Comparison 3: " + student5.compareTo(student6));
  }
}

StudentMain.java 파일에서 잘못된 패키지를 가져오기 때문에 패키지가 존재하지 않습니다 오류가 발생했습니다. 우리는 import names.Students;로 가져오고 있었지만 import name.Students;여야 합니다.

CLASSPATH를 설정하는 방법을 포함하여 아래의 모든 명령을 볼 수 있습니다.

출력:

C:\Users\MEHVISH ASHIQ>cd Desktop/java/stuff
C:\Users\MEHVISH ASHIQ\Desktop\java\stuff>set classpath=.;
C:\Users\MEHVISH ASHIQ\Desktop\java\stuff>cd com/name
C:\Users\MEHVISH ASHIQ\Desktop\java\stuff\com\name>javac Students.java
C:\Users\MEHVISH ASHIQ\Desktop\java\stuff\com\name>cd..
C:\Users\MEHVISH ASHIQ\Desktop\java\stuff\com>javac StudentMain.java
C:\Users\MEHVISH ASHIQ\Desktop\java\stuff\com>java StudentMain
Comparison 1: 0
Comparison 2: -1
Comparison 3: 1
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - Java Error