Java development notes document


解决的问题

在CMD上运行java文件时出现错误:找不到或者无法加载主类的问题。

解决方案

1. 首先写一个测试文件
public class TestDemo {  
    public static void main(String args[]) { 
        System.out.println("Run successfully!");  
    }
}

2. 通过cmd编译如下

2.1 通过命令:
javac TestDemo.java
将其编译成字节码文件。要运行一段Java源码,必须先将源码转换为class文件,class文件就是编译器编译之后供虚拟机解释执行的二进制字节码文件。

2.2 通过命令:
java TestDemo
将其运行,并打印输出结果。

从图中可以看出,在这种情况下编译是正常的。

3. 那么,我们修改刚开始的代码

在首行加入在java中最常见的package关键字。

如下:
package CourseExercise; 
public class TestDemo { 
    public static void main(String args[]) { 
        System.out.println("Run successfully!"); 
    }
}

3.1 通过命令:
javac TestDemo.java
将其编译成字节码文件

在编译成字节码文件时,是没有问题的。也就是说,在当前文件目录下,可以成class文件。好的,继续往下进行。

3.2 通过命令:
java TestDemo
尝试将其运行,并打印输出结果。

这个时候就会报错了。提示错误:找不到或无法加载主类。很明显,这个错误是由于在代码首行加入了package CourseExercise;造成的。

4. 那么,遇到这种问题该怎么解决呢

方法如下: 4.1 通过命令:

javac -d . TestDemo.java
将目标文件编译成class文件。

说明: <mark>-d</mark> :表示生成目录,设置编译生成的class文件保存路径,路径与定义的包名和层次相关。 <mark> . </mark> :表示在当前目录中生成。
4.2 通过命令:

java CourseExercise/TestDemo
或者
java CourseExercise.TestDemo
来运行程序。

4.3 通过命令:

javap -verbose TestDemo.class
将class文件中的字节码转换为字节码指令。