在cmd中编译java代码通过,运行时却提示:找不到或无法加载主类
在命令行中编译Java代码时,编译没有报错,但是在运行时出现找不到或无法加载主类的问题,如下图所示:
经过查找相关技术的博客,发现主要是环境变量配置问题。逐一排查:
首先,我们知道在dos窗口执行指令时,可执行程序必须进入到程序所在的目录下才能正常执行,而环境变量中的path变量可以为系统设定一个默认的路径,即系统先在当前目录下查找有无指定的可执行程序,如果没有找到,就去查找环境变量的路径,依次查找path中设置的多个路径下有没有指定的可执行程序名;查询到就执行程序同时停止查询;若直到查询完毕仍没有,则显示“XX不是内部或外部命令”。
而在我的用户变量中path环境变量中已经保证了jdk环境变量的路径优先级最高,如下图中红色箭头所指,因为系统首先从这里找,找到了的话就不会往下继续查找,避免了其他的环境变量中也有相关的环境变量匹配错误,如安装过其他的语言编译软件也可能有java相关的环境变量就会出错,建议将JDK。环境白那两的路径调到最上面。到了这里已经可以确定用户环境变量应该是没问题。