Beheben Sie den Fehler `Paket existiert nicht` in Java

Mehvish Ashiq 12 Oktober 2023
  1. Demonstration von Paket existiert nicht in Java
  2. Beheben Sie den Fehler Paket existiert nicht in Java
Beheben Sie den Fehler `Paket existiert nicht` in Java

Heute werden wir den Fehler Paket existiert nicht in Java reproduzieren, um den Fehler und seine Gründe zu verstehen. Außerdem lernen wir die Lösung anhand von Codebeispielen kennen.

Demonstration von Paket existiert nicht in Java

Beispielcode (Datei 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;
    }
  }
}

Beispielcode (Datei 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));
  }
}

Wir haben ein Verzeichnis Desktop/java/stuff/com/name, in dem sich alle unsere .java-Dateien befinden, mit Ausnahme derjenigen, die die main()-Methode enthalten. Für das obige Codebeispiel haben wir Students.java im Verzeichnis Desktop/java/stuff/com/name, während sich StudentMain.java mit der Methode main() im Verzeichnis Desktop/java/stuff/com Verzeichnis.

Es ist auch wichtig zu beachten, dass wir Desktop/java/stuff auf unseren CLASSPATH gesetzt haben.

Lassen Sie uns den Code verstehen, um den Fehler und seine Ursachen herauszufinden.

Der obige Code vergleicht die Nachnamen der Students und speichert das Ergebnis in der Variable compareResults. Dieses Ergebnis wird weiter verwendet, um ihre Vornamen zu vergleichen. Wie?

Wenn der Nachname übereinstimmt, wäre das Ergebnis true bedeutet 0. Es springt also zur if-Bedingung und prüft, ob die Anzahl der Zeichen in ihren Vornamen übereinstimmt.

Das Ergebnis des Vornamenvergleichs basiert auf folgenden Bedingungen:

  1. Wenn this.count gleich other.count ist, ist das Ergebnis 0.
  2. Wenn this.count grösser als other.count ist, ist das Ergebnis 1.
  3. Wenn this.count kleiner als other.count ist, ist das Ergebnis -1.

Aber wenn wir versuchen, das Programm zu kompilieren, gibt es uns den folgenden Fehler.

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

Was bedeutet das und warum stehen wir vor diesem Problem? Dieser Fehler bedeutet, dass das Paket, das wir zu importieren versuchen, nicht existiert.

Dafür kann es verschiedene Gründe geben, die alle im Folgenden aufgeführt sind:

  1. Wir haben das falsche Paket importiert, oder wir haben möglicherweise einige Tippfehler beim Importieren des Pakets.

  2. Überprüfen Sie erneut, ob sich alle Dateien in den richtigen Unterverzeichnissen befinden.

  3. Wenn wir unseren CLASSPATH auf Desktop/java/stuff gesetzt haben, dann werden die mit package name; definierten Dateien muss sich im Verzeichnis Desktop/java/stuff/com/name befinden. Sie können dies überprüfen, um zu erfahren, wie Sie CLASSPATH einstellen.

  4. Stellen Sie sicher, dass sich alle Java-Quelldateien im richtigen Unterverzeichnis befinden. Wir müssen auch sicherstellen, dass die Java-Quelldateien im Verzeichnis Desktop/java/stuff/com/name kompiliert werden.

    Warum? Die .class-Dateien müssen sich auf dem CLASSPATH befinden. Denken Sie daran, dass die .java-Dateien nicht im CLASSPATH, sondern im SOURCEPATH sein müssen, während .class-Dateien generiert werden, wenn wir die Datei mit dem Befehl javac kompilieren.

  5. Wir erhalten diesen Fehler auch, wenn wir das eingebaute Paket nicht richtig verwenden. Siehe folgenden Code:

Beispielcode:

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

Fehlerbeschreibung:

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

Beheben Sie den Fehler Paket existiert nicht in Java

Beispielcode (Datei 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;
    }
  }
}

Beispielcode (Datei 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));
  }
}

Wir haben den Fehler Paket existiert nicht erhalten, weil das falsche Paket in die Datei StudentMain.java importiert wurde. Wir importierten als import names.Students;, während es import name.Students; sein muss.

Sie können alle Befehle unten sehen, einschließlich wie wir den CLASSPATH setzen.

Ausgang:

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

Verwandter Artikel - Java Error