解决 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 错误 Java.Net.SocketException: Network Is Unreachable
发布时间:2023/07/16 浏览次数:963 分类:Java
-
今天我们就来讨论一下Java编程时出现java.net.SocketException: Network is unreachable异常的可能原因及解决方法。Java中出现java.net.SocketException: Network is unreachable的可能原因及解决方案
Java 错误 Java.Net.ConnectException: Connection Timed Out
发布时间:2023/07/16 浏览次数:235 分类:Java
-
本篇文章将重点介绍如何使用此包进行基本的网络调用以及可能面临和解决的错误。在 Java 中使用 java.net 进行网络调用 进行网络调用是 Java 开发人员每天面临的最重要的事情之一。
Java 中错误 Attempt to Invoke Virtual Method on a Null Object Reference
发布时间:2023/07/16 浏览次数:948 分类:Java
-
本篇文章介绍如何解决 Java 中的 Attempt to invoke virtual method on a null object reference 错误。Java 中 Attempt to invoke virtual method on a null object reference 错误
Java 错误 Java.Security.InvalidKeyException: Illegal Key Size
发布时间:2023/07/15 浏览次数:644 分类:Java
-
本篇文章介绍包含 java.security.InvalidKeyException: Illegal key size 的 Java 代码。 然后,我们将了解其可能的原因。最后,它通过消除指定的错误来引导我们找到解决方案。
Java 错误 Java.SQL.SQLException: Access Denied for User Root@Localhost
发布时间:2023/07/15 浏览次数:165 分类:Java
-
本篇文章介绍如何解决 Java 中的 java.sql.SQLException: Access Denied for user 'root'@'localhost' 错误。修复 Java 中的 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
Java 错误 Gateway Process Exited Before Sending Its Port Number
发布时间:2023/07/15 浏览次数:885 分类:Java
-
本篇文章介绍了 Java 中 Java gateway process exited before sending the driver its port number 错误 Java gateway process exited before sending the driver its port number 错误
修复 Java 中 Java.Net.BindException: Address Already in Use: Bind 错误
发布时间:2023/07/15 浏览次数:250 分类:Java
-
本篇文章介绍了 Java 中的 java.net.BindException:Address already in use: Bind 错误。修复Java 中的 java.net.BindException:Address already in use: Bind
Java 中错误 Unsupported Major Minor Version
发布时间:2023/07/14 浏览次数:133 分类:Java
-
出现 Unsupported Major.minor version 错误或 Java.lang.UnsupportedClassVersionError 的原因是运行时 JDK 较低,编译时 JDK 较高。 本篇文章介绍如何解决Java中不支持的major.minor版本。
Java 错误 Error:Java: Javactask: Source Release 1.8 Requires Target Release 1.8
发布时间:2023/07/14 浏览次数:274 分类:Java
-
在使用IntelliJ for Java时,无法编译Java程序是一个常见的问题。 本教程提供了此错误的解决方案。Error:Java: Javactask: Source Release 1.8 Requires Target Release 1.8 错误