首先对于没在包里面的源文件,javac编译后,直接java test可以运行,我们这里分析你java test 出现“找不到或无法加载主类”这种异常情况
如果你的环境变量确实没问题,那么我们来进行过程分析一下:
我们假设:
- 你在cmd环境下进行操作
- 你的java源文件是处于包里面的
- 你的java源程序是test.java:
首先
先cd到你的java源文件处,进行 javac test.java 的编译过程。然后生成了.class文件。
接着
直接在当前目录下运行 java test
这一步就是错误的根本。
原因:
当你的源文件在包里面的时候,你就不能直接在当前源文件的目录下运用 java test
如果你非要在这个目录底下运行,在编译后执行:
java test.java
(亲测有效)
如果你想用 java test 形式执行
首先从命令行中输入
cd ..
用来退出当前目录而进入上一级目录的命令。
退到你的java源文件所在的最外层的包的上一级目录。
比如
你的源文件处于E:\java\javafile\code\test.java
其中code是离源文件最近包
javafile是离源文件次近的包,
则你应该cd到java这个目录下然后执行:
java javafile.code.test
要加上你的包的路径,之后可以得到正确运行结果