记录命令行运行java代码: 找不到或无法加载主类 错误
前言
今天准备写一个小demo,用命令行进行编译Java程序,命令窗口提示"找不到或无法加载主类",记录一下这个错误。
一、如何用命令行运行Java代码?
Java是一种解释型语言,我们写好的Java代码需要事先编译成.class文件后(即字节码)才可以在Java解释器中运行,故命令行运行Java代码大致分为两个步骤:①javac编译.java文件,生成.class文件;②java命令运行.class文件,执行我们编写好的Java程序。
这个步骤现在主流的ide如eclipse、idea、MyEclipse等都可以在运行时自动执行。
二、遇到的问题
1.我遇到的问题
-
首先总结一下我遇到的问题,问题大致如下:在使用java命令时,由于是利用tab键自动补齐的,所以将文件扩展名也带出,这时我们看到的是想要执行 java ScannerDemo.class 这条命令, 这其实没问题,但实际上这条命令是: java ScannerDemo.class.class, 所以就提示: 找不到或无法加载主类
-
可以看到将命令结尾的".class"删除后就可以进入我编写的程序中了:
2.查阅资料后总结一下其他可能的原因
-
如果按照上述操作进行修改无果,可以检查下自己的环境变量是否配置正确,CLASSPATH是否正确:
.;%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar
其中"."在这种问题中比较重要,它代表的是"当前目录",如果配置CLASSPATH时没有加上"."的话就容易报"找不到或无法加载主类"这个错误。
-
如果在java文件中添加了package, 那么在执行java命令时需要使用"包名.类名"的形式进行.class文件的执行, 如:
这时应该新建文件夹com, 再在com文件夹中新建demo文件夹,把.java文件放到demo中,在命令行中执行如下命令:
采用"包名.类名"的方式,就可以解决"找不到或无法加载主类"的问题了。
总结
以上就是今天要总结的内容,本文仅仅简单介绍了命令行运行Java代码的一些注意点,但并不全面,欢迎一起交流;如有错误,也欢迎指出,虚心请教。