Java でパッケージが存在しないというエラーを解決する

Mehvish Ashiq 2023年10月12日
  1. Java での Package Does Not Exist のデモンストレーション
  2. Java でパッケージが存在しないエラーを解決する
Java でパッケージが存在しないというエラーを解決する

今日は、エラーとその理由を理解するために、Java で package does not exist エラーを再現します。 さらに、コード例の助けを借りてその解決策についても学びます。

Java での Package Does Not Exist のデモンストレーション

コード例 (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 ディレクトリにありますが、main() メソッドを持つ StudentMain.javaDesktop/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 の設定方法を学習できます。

  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 ファイルに間違ったパッケージをインポートしたため、package does not exist エラーが発生しました。 import name.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
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