编写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");
}
}
错误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");
}
}
错误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");
}
}
错误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扩展名,只需指定类文件的名称即可。
错误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