如何解决 Java 中的"无法找到或加载主类包"?

javaobject oriented programmingprogramming

编写 Java 程序后,您需要使用 javac 命令对其进行编译,这会显示发生的编译时错误(如果有)。

解决这些问题并成功编译程序后,当前文件夹中会生成一个与您的类名同名的可执行文件,扩展名为 .class

然后您需要使用 java 命令以 − 的形式执行它

java class_name

执行时,如果 JVM 找不到具有指定名称的 .class 文件,则会出现运行时错误,提示"无法找到或加载主类"错误,错误代码为 −

D:\sample>java Example
Error: Could not find or load main class Example
Caused by: java.lang.ClassNotFoundException: Example

解决方案

为了避免此错误,您需要指定当前目录中的 .class 文件的绝对(包括包)名称(仅名称)。

以下是可能发生此错误的场景 −

错误的类名 − 您可能指定了错误的类名。

class Example {
   public static void main(String args[]){
      System.out.println("This is an example class");
   }
}

Error

D:\>javac Example.java
D:\>java Exmple
Error: Could not find or load main class Exmple
Caused by: java.lang.ClassNotFoundException: Exmple

解决方案 − 其中类名拼写错误,我们需要更正它。

D:\>javac Example.java
D:\>java Example
This is an example class

大小写错误 − 您需要指定大小写相同的类的名称,Example.java 与 example.java 不同。

class Example {
   public static void main(String args[]){
      System.out.println("This is an example class");
   }
}

Error

D:\>java EXAMPLE
Error: Could not find or load main class EXAMPLE
Caused by: java.lang.NoClassDefFoundError: Example (wrong name: EXAMPLE)

解决方案 − 这个类名大小写错误,应该进行修饰。

D:\>javac Example.java
D:\>java Example
This is an example class

错误的包 − 您可能在包中创建了 .class 文件,并尝试在没有包名称或使用错误的包名称的情况下执行。

package sample;
class Example {
   public static void main(String args[]){
      System.out.println("This is an example class");
   }
}

Error

D:\>javac -d . Example.java
D:\>java samp.Example
Error: Could not find or load main class samp.Example
Caused by: java.lang.ClassNotFoundException: samp.Example

解决方案 − 在这种情况下,我们提到了错误的包名称。执行时,我们需要指定 .class 文件所在的正确包名称,即 −

D:\>javac -d . Example.java
D:\>java sample.Example
This is an example class

包含 .class 扩展名 − 执行文件时,无需在程序中包含 .class 扩展名,只需指定类文件的名称即可。

Error

D:\sample>java Example.class
Error: Could not find or load main class Example.class
Caused by: java.lang.ClassNotFoundException: Example.class

解决方案 − 执行程序时不需要扩展名 .class

D:\sample>java Example
This is an example class

相关文章