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.java는 Desktop/java/stuff/com/name 디렉터리에 있고 StudentMain.java와 main() 메서드는 Desktop/java/에 있습니다. stuff/com 디렉토리.
Desktop/java/stuff를 CLASSPATH로 설정했다는 점도 중요합니다.
오류와 그 원인을 파악하기 위해 코드를 이해합시다.
위의 코드는 Students의 성을 비교하고 결과를 compareResults 변수에 저장합니다. 이 결과는 이름을 비교하는 데 더 사용됩니다. 어떻게?
성이 일치하면 결과는 true는 0을 의미합니다. 따라서 if 조건으로 이동하여 이름의 문자 수가 일치하는지 평가합니다.
이름을 비교한 결과는 다음 조건을 기반으로 합니다.
- this.count가- other.count와 같으면 결과는- 0이 됩니다.
- this.count가- other.count보다 크면 결과는- 1이 됩니다.
- this.count가- other.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;
그것은 무엇을 의미하며 왜 우리는 이 문제에 직면하고 있습니까? 이 오류는 가져오려는 패키지가 존재하지 않음을 의미합니다.
여기에는 여러 가지 이유가 있을 수 있으며 모두 아래에 나열되어 있습니다.
- 
잘못된 패키지를 가져왔거나 패키지를 가져오는 동안 오타가 있을 수 있습니다. 
- 
모든 파일이 올바른 하위 디렉토리에 있는지 다시 확인하십시오. 
- 
CLASSPATH를Desktop/java/stuff로 설정한 경우package name;으로 정의된 파일Desktop/java/stuff/com/name디렉토리에 있어야 합니다.CLASSPATH설정 방법을 알아보려면 this를 확인하십시오.
- 
모든 Java 소스 파일이 올바른 하위 디렉토리에 있는지 확인하십시오. 또한 Java 소스 파일이 Desktop/java/stuff/com/name디렉토리에 컴파일되었는지 확인해야 합니다.왜? .class파일은CLASSPATH에 있어야 합니다..java파일은CLASSPATH가 아니라SOURCEPATH에 있어야 하며.class파일은javac명령을 사용하여 파일을 컴파일할 때 생성됩니다.
- 
내장 패키지를 제대로 사용하지 않으면 이 오류가 발생합니다. 다음 코드를 참조하십시오. 
예제 코드:
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
