解决 Java 错误 Package Does Not Exist
今天,我们将重现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 条件并评估名字中的字符数是否匹配。
名字比较的结果基于以下条件:
- 如果 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,则使用包名称定义的文件; 必须位于 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
相关文章
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 错误 SunCertPathBuilderException: Unable to Find Valid Certification Path
发布时间:2023/07/11 浏览次数:164 分类:Java
-
本篇文章将讨论 unable to find valid certification path to requested target 潜在原因及其在 Java 中的解决方案。Java中的sun.security.provider.certpath.SunCertPathBuilderException是什么
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 错误的原因 当我们尝试在分支控制流语句之后放置语句时,会发生不可到达语句错误。
解决 Java 错误 Java.Sql.SQLException: No Suitable Driver
发布时间:2023/07/11 浏览次数:89 分类:Java
-
本篇文章介绍了 Java 中的 java.sql.SQLException:No suitable driver 错误。Java 中 java.sql.SQLException: No suitable driver 的原因