迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

解决 Java 错误 Package Does Not Exist

作者:迹忆客 最近更新:2023/07/07 浏览次数:

今天,我们将重现Java中的包不存在错误,以了解该错误及其原因。 此外,我们还将借助代码示例了解其解决方案。


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));
    }
}

我们有一个目录 Desktop/java/stuff/com/name ,除了包含 main() 方法的文件外,所有 .java 文件都位于该目录中。 对于上面的代码示例,我们在 Desktop/java/stuff/com/name 目录中拥有 Students.java,而具有 main() 方法的 StudentMain.java 位于 Desktop/java/stuff/com 目录中。

同样重要的是要注意,我们已将 Desktop/java/stuff 设置为我们的 CLASSPATH

让我们理解代码来找出错误及其原因。

上面的代码比较学生的姓氏并将结果存储在compareResults变量中。 该结果进一步用于比较他们的名字。 如何?

如果姓氏匹配,结果将为 true,意味着 0。因此,它会跳转到 if 条件并评估名字中的字符数是否匹配。

名字比较的结果基于以下条件:

  1. 如果 this.count 等于 other.count,则结果将为 0。
  2. 如果 this.count 大于 other.count,则结果将为 1。
  3. 如果 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,则使用包名称定义的文件; 必须位于 Desktop/java/stuff/com/name 目录中。 您可以查看此内容以了解如何设置 CLASSPATH。

确保所有 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
Resolve Package Does Not Exist Error in 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 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 错误 Could Not Reserve Enough Space for Object Heap Minecraft

发布时间:2023/07/11 浏览次数:125 分类:Java

本篇文章介绍了 Java 中的 Could not reserve enough space for object heap 错误。Minecraft 是一款非常流行的用 Java 开发的游戏,我们需要 Java 来运行它。Java 中Minecraft 错误Could not reserve enough space for object h

Java 错误 Cannot Determine a Valid Java Home

发布时间:2023/07/11 浏览次数:148 分类:Java

本篇文章介绍了 Java 中的 cannot determine a valid java home 错误。当 Java Home 路径设置不正确时,会出现 cannot determine a valid java home 错误。 我们必须按照以下步骤正确设置我们的 Java Home 来解决这个问

Java 错误 Class Expected

发布时间:2023/07/11 浏览次数:66 分类:Java

在本文中,我们将研究 Java 中的“.class” expected错误是什么。“.class” expected错误是编译时错误。 有些人可能会感到困惑,因为他们认为这是一个运行时错误,但这是错误的。

Java 错误 Constructor Is Undefined

发布时间:2023/07/11 浏览次数:192 分类:Java

本文将研究 Java 的错误,constructor not defined。Java 中的constructor not defined错误 构造函数未定义是一个非常常见的错误。

修复 Java 错误 Java.Net.SocketException: Permission Denied

发布时间:2023/07/11 浏览次数:124 分类:Java

本篇文章介绍了 Java 中的 java.net.SocketException:Permission denied 错误。Java中出现 java.net.SocketException: Permission returned 错误的原因 SocketException 通常在网络连接出现问题时发生。

修复 Java 错误 $' ': Command Not Found

发布时间:2023/07/11 浏览次数:63 分类:Java

本篇文章介绍了 Java 中的 $'\r': command not found 错误。Java 中 $'\r': command not found 的原因当我们尝试在 Cygwin 等平台的 Linux 平台上运行 Unix 风格的命令时,会出现错误 $'\r': command not find 。

解决 Java 错误 Unreachable Statement

发布时间:2023/07/11 浏览次数:175 分类:Java

本篇文章介绍了 Java 中的 unreachable statement 错误。Java中出现 unreachable statement 错误的原因 当我们尝试在分支控制流语句之后放置语句时,会发生不可到达语句错误。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便