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